IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

[port Serie] communication entre deux ordi par le port serie [Tutoriel]


Sujet :

C++

  1. #1
    BuG
    BuG est déconnecté
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 44
    Points : 23
    Points
    23
    Par défaut [port Serie] communication entre deux ordi par le port serie
    Bonjour tt le monde !!

    Voila:
    Je dois réaliser une petite appli pour la communication entre 2 ordi par le port serie [ cable null modem croisé ]. J'ai vu dans un poste qu'il y avait les fonctions _inp() et outp() mais j'ai cru comprendre qu'elle n'étais pas portable et uniquement dans Visual C++ .

    Quelle sont les fonctions a utiliser pour envoyer une Lettre, par exemple, a l'autre ordi et sinon pour la recupere sur cette autre ordi ?

    [ Sans passer par les composant ComPORT ( ou qqc com ca) de c++ builder décrit par PETIT,que je remercie, dans ses tuts ]

    Existe il une librairie pour faire ce genre de chose ?
    Quelle sont les moyens pour y arriver ?

    Merci @+

  2. #2
    Nouveau Candidat au Club
    Inscrit en
    Mars 2003
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Pour communiquer entre 2 PC tu peut le faire par liaison serie RS232 ou 485 . Pour transmettre un fichier tu pourrait plutot etablir une appli client serveur et tu ferait comme ceci:

    1)Tu creer un fichier "a la main" sur ton PC ou tournera le serveur et le remplit de tes données.

    2)ton client sur l'autre PC se chargera de creer un fichier avec la fonction CreateFile sur ton disk dur.

    3)Ton serveur ouvre le fichier ( fopen()), met les données contenu dans ce fichier dans un buffer de type de tableau de caractere, et envoi ce buffer grace a la fonction send() utilisé ds toute appli client/serveur,au client.

    4)ton client recoit ce buffer et ecrit les données de ce buffer dans le fichier qu'il a creer grace a la fonction fwrite.

    5)Pour que les données soit bien ecrite dans ton fichier n'oublie pas de faire un fclose() apres avoir fait fwrite() car lorsqe l'on utilise un fichier bufferisé les données sont ecrites apres fermeture du fichier.

    6)Pour verifié que tes donnée sont bien transmises tu peut faire un cout<< de ton buffer de chaque coté.

    J'ai codé cette appli il y a peut donc su tu besoin de plus d'aide j'ai les sources si tu veut.

    Voila! a+++

    Jul'

  3. #3
    BuG
    BuG est déconnecté
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 44
    Points : 23
    Points
    23
    Par défaut ...
    Heuu merci mais c'est pas exactement ce que je voulais savoir ( c'est pas grave ca va me servir quand même ) ce que je voulais savoir c'est la fonction qui premet d'envoyer les donné a travers le port serie exemple il y a peut être une fonction declaré dans iostream.h EnvoyerDonneParLePortSerie(char *donne);

    mais cet fonction n'existe pas...

    @+

    J'espere que t'as compris ce que je voulais dire

  4. #4
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 190
    Points : 11 573
    Points
    11 573
    Par défaut
    En C++
    l'ouverture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    HANDLE handle;
     handle = CreateFile("COM1:",                     //Nom du port série
                         GENERIC_READ|GENERIC_WRITE, //Type d'accès
                         0,                          //Mode de partage
                         NULL,                       //
                         OPEN_EXISTING,              //Obligatoire
                         FILE_FLAG_OVERLAPPED,       //NULL = synchrone, sinon asynchrone
                         NULL);                      //
    L'écriture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    WriteFile(handle,
               xxx,         //pointeur sur tes données
               xx,          //Nombre de caractère à écrire
               xxx,         //Adresse d'une variable 32 bit
                            //Windows va faire un copie dedans
     
               0);          //0 = synchrone
    idem pour la lecture.
    etc... je ne pourrais pas t'aider d'avantge, je ne pratique jamais comme ça d'habitude.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  5. #5
    BuG
    BuG est déconnecté
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 44
    Points : 23
    Points
    23
    Par défaut ...
    Merci !!

    Pour la lecture c'est pareil sauf que c'est ReadFile([arguments]); ?

    Merci @+

  6. #6
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 190
    Points : 11 573
    Points
    11 573
    Par défaut
    Oui en effet c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ReadFile(handle, 
               xxx,         //pointeur sur un espace de stockage données 
               xx,          //Nombre de caractère à lire 
               xxx,         //Adresse d'une variable 32 bit 
                            //Windows va faire un copie dedans 
     
               0);          //0 = synchrone
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

Discussions similaires

  1. Communication entres deux automates scheinder par wifi
    Par Gk_44 dans le forum Automation
    Réponses: 13
    Dernier message: 08/06/2015, 12h15
  2. Réponses: 2
    Dernier message: 18/02/2014, 15h52
  3. Communication entre deux programmes c# par USB
    Par Sylvain_31 dans le forum C#
    Réponses: 1
    Dernier message: 13/04/2010, 23h27
  4. Communication entre deux Pc par un cable réseau
    Par heddaji dans le forum Windows Forms
    Réponses: 2
    Dernier message: 31/03/2007, 23h38
  5. Connexion entre deux ordi [Débutant]
    Par Ryadus dans le forum Développement
    Réponses: 2
    Dernier message: 12/06/2003, 21h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo