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

Entrée/Sortie Java Discussion :

Problème lors de l'envoi de données via laison RS 232


Sujet :

Entrée/Sortie Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 15
    Points : 3
    Points
    3
    Par défaut Problème lors de l'envoi de données via laison RS 232
    Bonjour à tous, et tout d'abord merci et bravo pour ce site communautaire qui pour ma part m'a déjà sorti de beaucoup de soucis, et qui a du en aider déjà plus d'un!
    Justement jusqu'à présent j'ai toujours réussi à m'en sortir avec les posts laissés ici, mais aujourd'hui je me permet d'envoyer ma question :

    J'utilise une interface graphique développée en JAVA afin de communiquer avec un micro-contrôleur via la liaison série du PC (en RS232).

    Grosso modo il y a sur cette IHM quelques Sliders qui permettent de régler des paramètres qui sont transmis au DSP.

    J'ai trouvé grâce à un excellent tutorial comment gérer le dialogue avec le port COM, malheureusement, pour le moment je n'arrive à l'utiliser que pour transmettre le code ASCII de la valeur du paramètre que je souhaite modifier grâce à mon Slider. A l'aide d'un soft gratuit (Free Serial Port Monitor) je peux espionner ce qu'il se passe sur le port COM : il "affiche" bien la valeur souhaitée mais ne transmet que le code ASCII.

    Sinon ma deuxième question est moins ciblée, d'ordre plus global : lors d'une communication avec le port série, pour le moment je n'y suis parvenu qu'en faisant une procédure du style : détection d'un mouvement sur un slider->récupération de la valeur->ouverture du port COM->envoi donnée (son code ASCII malheureusement!)->fermeture du port COM. Et dès lors que le slide passe au "tick" suivant, rebelotte : récupération de la valeur, ouverture du port, envoi puis fermeture. Cela vous semble-t-il logique, vous autres familiers de ce bon vieux port série (je découvre totalement son usage, excusez mes questions naïves).

    Voici le code que j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    import java.awt.GridBagConstraints ;
    import java.awt.GridBagLayout ;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.* ;
    import javax.swing.event.ChangeEvent ;
    import javax.swing.event.ChangeListener ;
    import javax.comm.*;
    import java.io.*;
    import java.util.*;
     
     
    public class Main1Slider extends JPanel{
     
        JLabel val_gain, val_puls, val_facteur, val_delay ;
     
        JSlider sgain, spuls, sfacteur, sdelay ;
     
        JLabel TexteGain, TextePuls, TexteFacteur ;
     
        JButton boutonreset;
     
     
    public Main1Slider() {
     
        super() ;
     
     
        sgain = new JSlider() ;
        spuls = new JSlider() ;
        sfacteur = new JSlider() ;
        sdelay = new JSlider() ;
     
        boutonreset = new JButton("Mise à zéro");
     
        sgain.setMinimum(-50) ;
        sgain.setMaximum(50) ;
        sgain.setValue(0) ;
        sgain.setMajorTickSpacing(10) ;
        sgain.setMinorTickSpacing(5) ;
        sgain.setPaintTicks(true) ;
        sgain.setPaintLabels(true);
     
        c.gridx=0 ;
        c.gridy=0 ;
        this.add(TexteGain,c) ;
        c.gridx=1 ;
        c.gridy=0 ;
        c.anchor = GridBagConstraints.CENTER ;
        this.add(sgain,c) ;
        c.gridx=2 ;
        c.gridy=0 ;
        c.anchor=GridBagConstraints.LINE_END;
        this.add(val_gain,c) ;
     
    sgain.addChangeListener(new AuditeurSliderGain()) ;
     
    private class AuditeurSliderGain implements ChangeListener{
            public void stateChanged(ChangeEvent arg0) {
            if (sgain.isFocusOwner()){
            int valeurGAIN = 0 ;
     
            val_gain.setText("%"+sgain.getValue()) ;
     
            valeurGAIN = sgain.getValue();
     
            System.out.println("YO H0!"+valeurGAIN) ;
            new TesteJavaComm("COM1", valeurGAIN);
                                     }
                }
        }
     
    public class TesteJavaComm
    {
    CommPortIdentifier portId;
    BufferedReader in;
    PrintWriter out;
    SerialPort serialPort;
     
     
     
     
    /*
    Constructeur de la classe TesteJavaComm qui prend en paramètre le port série à utiliser.
    Dans un premier temps on liste les ports disponibles sur le pc
    */
    public TesteJavaComm (String com, int a)
    {
    System.out.println("listage des ports série disponibles:");
     
    //listePortsDispo();
    try
    {
    //ouverture du port série:
    portId=CommPortIdentifier.getPortIdentifier(com);
    serialPort=(SerialPort)portId.open("Envoi",2000);
     
     
    //on sélectionne tous les paramètres de la connexion série:
    serialPort.setSerialPortParams(9600,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);
    System.out.println("Ouverture du port"+com);
     
    //pour lire et écrire avec des streams:
    in=new BufferedReader(new InputStreamReader(serialPort.getInputStream()));
    out=new PrintWriter(serialPort.getOutputStream());
    out.write (+a);
    System.out.println(+a);
    out.close();
    serialPort.close();
    }
    catch (Exception e)
    {
    e.printStackTrace();
    }
    }//fin constructeur
     
    public static void main(String[] args) throws ClassNotFoundException, InstantiationException,
    IllegalAccessException, UnsupportedLookAndFeelException 
        {
    // En decommantant la ligne suivante, l’interface prend le ”look-and-feel”
    //du systeme d’exploitation
        //UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName()) ;
        JFrame fen = new JFrame("Contrôle Actif appliqué au chevalet de violon") ;
        fen.setResizable(true) ;
        fen.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;
        fen.setContentPane(new Main1Slider()) ;
        fen.pack() ;
        fen.setVisible(true) ;
        /*char lettre = 'a';
        int monAsci = (new Character(lettre)).hashCode();
        String binaryString = Integer.toBinaryString(monAsci);
        System.out.println(binaryString);*/
        }
    }

    En fait précisément : ce que je souhaiterais c'est qu'en bougeant mon Slider à +2 par exemple, alors la donnée envoyée soit bien une valeur qui vaut "2", et non "32" soit le code ascii du caractère 2.

    De plus : si j'essaye de passer en argument de TesteJavaComm un float plutôt qu'un int, alors la méthode "out.write(+a)" ne fonctionne plus. Cela voudrait-il dire que dans tout les cas en écrivant out.write j'envoie un caractère? Et que donc il existe une autre méthode que "write" qui existe et qui permette d'envoyer d'autres types de variables?

    Bonne soirée à tous, et merci à qui pourra se pencher sur mon problème!

  2. #2
    Membre confirmé Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Points : 493
    Points
    493
    Par défaut
    Le code envoyé est le code ascii du caractère sur la partie data du port com car tu utilises un PrintWriter sur le flux d'écriture du port. Tu pourrais ne pas l'utiliser et envoyer directement des octets pour plus de contrôle.

    Ensuite, sur le principe, pourquoi fermer le port à chaque fois et ne pas le laisser ouvert, disons pendant la "session de travail" avec le port ? Il suffit de garder une référence dessus ...

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 15
    Points : 3
    Points
    3
    Par défaut
    Salut, merci d'avoir pris la peine de répondre.
    En effet c'est exactement mon problème et je ne vois pas quoi utiliser d'autre que "PrintWriter" puis "out.write(argument)" pour envoyer des données sur le port COM.
    Comment passer un float ou int simplement?
    Merci, à plus peut-être!

  4. #4
    Membre confirmé Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Points : 493
    Points
    493
    Par défaut
    En fait je me demande s'il est raisonnable d'écrire des int ou des float directement. L'encodage de ces types de données doit être interprété de la même manière de l'autre côté du port série, donc pas de problème si c'est un programme Java, mais si c'est du C attention.

    Note : je viens de découvrir les méthodes byteValue sur les Number :
    http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Float.html#byteValue()
    http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Integer.html#byteValue()
    Mais pour un Float, comment peut-on le convertir en un simple et unique byte il y a perte d'information non ?

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 15
    Points : 3
    Points
    3
    Par défaut
    effectivement, de "l'autre côté" (donc au niveau du microcontrôleur) la donnée va être interprétée en tant que "float". (en C)
    Mais après, un float est un float non?
    Ce que j'ai du mal à comprendre, c'est sous quelle forme est envoyée une donnée quelle qu'elle soit par le port série? un stream de byte?

    Sinon pour les méthodes que tu as dénichée, je suis dans le même cas que toi : coder un float sur un seul octet ??? quel sens donner à la valeur obtenue?? la précision? si je ne m'abuse, un float (comme un int) c'est 4 octets (4 bytes) soit 32bits
    le premier est le bit de signe
    les huits suivants correspondent à l'exposant
    les 23 derniers pour la "mantisse"...

    Si tu ramène tout ça à un seul octet, comment coder le signe, les chiffres après la virgule...

    Argh tout ce que je veux c'est en fixant mon slide à "2" que mon DSP le comprenne et dispose de cette variable "2"! et non une valeur étrange qui ne correspond pas, ou qui correspond à autre chose!

  6. #6
    Membre confirmé Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Points : 493
    Points
    493
    Par défaut
    Citation Envoyé par Rastaforien Voir le message
    Mais après, un float est un float non?
    Ben non justement, tout le problème est là ! Prenons un "int" par exemple, en C, il sera codé sur un nombre d'octets qui dépend de l'architecture de la machine : 16, 32 ou 64 bits ! Rajoute à ça les problématiques de nombres signés ou non signés (int / unsigned int), ou encore de little ou big endian (petit boutiste en français ), et tu verras qu'envoyer ces types de données entre un programme Java et C n'est pas si simple.

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 15
    Points : 3
    Points
    3
    Par défaut
    Ok merci pour ces précisions que je ne savais pas!
    Effectivement mettons que je parvienne bien à envoyer ce que je veux au port COM, le soucis pourrait provenir alors de ce que comprend le programme en C du DSP lors de la récupération de la valeur si j'ai bien suivi ces explications.

    Mais en attendant d'aller plus en "aval" dans ma chaîne (donc d'aller me prendre la tête du côté du DSP), je voudrais être sûr d'envoyer les valeurs de mes SLider sous la forme de float.
    Malheureusement, je ne vois pas quoi utiliser d'autre que PrintWriter pour "out", et puis par la suite out.write(argument que je veux en float)...
    Si tu as une idée d'autre chose que PrintWriter (et tu as raison : "print" implique cette déchirance à envoyer du ASCII), ou qqun d'autre éventuellement qui comprend de quoi cette discussion parle, ça me permettrait de gérer mon DSP via cette interface et ça serait bien la classe!

    Merci à tous, et à toi surtout DJSnipe pour les infos!

    Bon week-end à tous, je reste à l'affut de réponses éventuelles

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 15
    Points : 3
    Points
    3
    Par défaut
    En ragrdant bien plus attentivement qu'énervé la doc fournie au sujet de PrintWriter, il y est écrit : "Print formatted representations of objects to a text-output stream. This class implements all of the print methods found in PrintStream. It does not contain methods for writing raw bytes, for which a program should use unencoded byte streams."
    !!!
    Quel âne, dire que je m'acharnais!
    Visiblement utiliser "PrintStream" plutôt que "PrintWriter" permet plutôt l'envoi de données brutes...
    Mais il reste un soucis : utiliser le constructeur "PrintStream" plutôt que "PrintWriter" permet de manipuler autre chose que du texte. et en employant la méthode "print" plutôt que "write", il devient possible de passer des floats.

    Mais il me reste une zone d'ombre : avec la méthode "print" les float passés sont une fois de plus envoyé sous forme code héxa du code ascii
    ;
    La méthode write elle n'admet toujours que des int, ça n'a pas changé!

    Donc, si je veux envoyer -2 codé en float, suis bloqué car soit j'utilise "print" auquel cas j'aurais "2D 32", soit j'utilise "write" mais là... pas de float possibles!

    Si qqun a une idée, suis toujours preneur, sinon je vous tient au courant de la suite!

  9. #9
    Membre confirmé Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Points : 493
    Points
    493
    Par défaut
    Maintenant que les limites du modèle sont bien posées, tu peux aller faire un tour sur la classe DataOutputStream, elle fait exactement ce que tu veux, à savoir écrire des types primitifs : int, float, long ou double. La javadoc détaille bien quelle conversion est faite. Si jamais elle ne te conviens pas (ton DSP est en 64 bits big endian) ==> tu peux réécrire un wrapper dans le même esprit, qui fait la conversion exacte attendue par ton DSP.
    Bon WE, et n'hésites pas à nous dire si tu es parvenu à tes fins.

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 15
    Points : 3
    Points
    3
    Par défaut
    Merci pour ce dernier post, qui d'ailleurs me donne plus de sens au premier qui me renvoyait vers
    http://java.sun.com/j2se/1.4.2/docs/...yteValue%28%29

    Il me reste à faire cette conversion dont tu me parlais au niveau du DSP visiblement!

    Merci encore pour la peine. Je vous tiendrait au courant avec une version définitive et fonctionnelle dès qu'elle sera en place!

    Bon week-end à tous

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 15
    Points : 3
    Points
    3
    Par défaut
    De retour!
    J'espère que tout le monde a bien profité de ce week-end et de la fête de la musique.

    DJSnipe : après renseignements, j'ai encore du mal à saisir certains aspects :

    lorsque tu parle de big endian, little endian, etc. J'ai lu sur un post de ce forum que normalement les données en JAVA sont de type "BigEndian": pourquoi y'aurait-il besoin d'effectuer une conversion (les cartes embarquées fonctionnent en BigEndian normalement).

    Il est visiblement possible de gérer l'ordre d'envoi (l'ordre de bits, ou même l'ordre des octets avec byteBuffer.order().
    Selon toi : si les clients/serveurs fonctionnent en BigEndian (comme mon interface en JAVA et ma carte, à priori), reste-t-il néanmoins une conversion de type octet à effectuer? (envoyer les octets dans le bon ordre)
    Le mieux est-il de le faire au niveau du programme en JAVA, ou du programme qui récupère les infos (en C)?

    Je suis encore en échec vis à vis de ce problème, il me manque encore trop d'éléments pour dialoguer correctement.
    Bonne journée

  12. #12
    Membre confirmé Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Points : 493
    Points
    493
    Par défaut
    Citation Envoyé par Rastaforien Voir le message
    DJSnipe : après renseignements, j'ai encore du mal à saisir certains aspects :

    lorsque tu parle de big endian, little endian, etc. J'ai lu sur un post de ce forum que normalement les données en JAVA sont de type "BigEndian": pourquoi y'aurait-il besoin d'effectuer une conversion (les cartes embarquées fonctionnent en BigEndian normalement).
    Si les 2 systèmes qui communiquent sont tous les deux BigEndian, il ne faut pas faire de conversion. Cette problématique ne s'applique qu'entre systèmes différents. Dans le cadre des échanges TCP via des Sockets, je me souviens avoir utilisé en C les fonctions htonl et ntohl pour ce problème. L'idée c'est d'utiliser un ordre commun dis l'ordre réseau, et de faire des conversions avec l'ordre utilisé sur la machine. Si la machine utilise le même ordre que l'ordre réseau, aucune conversion n'est faite.
    Tout ça pour dire : si tu es sur que tes 2 systèmes sont BigEndian, ne fait rien !

    Citation Envoyé par Rastaforien Voir le message
    Le mieux est-il de le faire au niveau du programme en JAVA, ou du programme qui récupère les infos (en C)?
    Je suis encore en échec vis à vis de ce problème, il me manque encore trop d'éléments pour dialoguer correctement.
    A ? Tu as la main sur le code C sur le DSP ?
    Si oui, cf. problématique juste au dessus. Sinon, regardes la doc de ton DSP, elle doit bien spécifier qq part comment doivent être codés les float et autres long, si ils doivent être signés ou non ... dans la spec de l'interface.

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 15
    Points : 3
    Points
    3
    Par défaut
    Eh bien après fouillage en fait le DSP fonctionne en Little Endian (c'est un proc type ARM, apparemment c'est connu qu'ils sont en Little Endian! ... )

    Donc effectivement, si j'envoie "2" en float (et là c'est OK du côté JAVA! ouf, merci DJSnipe), de l'autre côté il recoit tout "à l'envers" si j'ai bien compris?
    J'ai alors encore besoin de conseils :
    lorsque tu dis "tu as la main sur le code C du DSP", tu entends que je peux le modifier? Si c'est le cas, oui je peux.
    J'ai simplement malheureusement pas accès aux valeurs de mes variables dans le prog du DSP (si je pouvais je mettrais moins de temps à piger ce que je recois et qui est mauvais et qui ne permet pas à l'appli de fonctionner)

    Apparement d'après toi le mieux serait d'inverser le flots de bits au niveau du DSP (donc avec le prog en C) et ce avec les fonctions htonl, etc que tu me décrivait?
    Mais si j'ai envie d'alléger au maximum le DSP : j'ai vu qu'il n'existait aucun moyen "direct" en JAVA d'effectuer cette inversion : faut-il le faire à la main??(bit à bit)->ce serait donc le "wrapper" que tu me décrivais qq posts auparavant?

  14. #14
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 15
    Points : 3
    Points
    3
    Par défaut
    Ouf!!!

    ce coup-çi, c'est la bonne (et donc la dernière : jusqu'au prochain soucis

    Je résume donc pour ceux qui se confronteraient au même soucis :

    1)Utiliser les objet de la classe "TesteJavaComm" en tant que "DataOutputStream", et non "PrintWriter"

    2) S'assurer du type d'endianess géré d'un côté ou de l'autre de la communication : en JAVA c'est en BigEndian, sur mon application, mon DSP utilisant un ARM7 (ATMEL), c'est en l'occurence du little Endian :
    il faut donc rajouter une petite classe qui assure la conversion voulue (Big vers Little)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public static float bigToLittleEndian(float bigendian) {
        ByteBuffer buf = ByteBuffer.allocate(8);
     
        buf.order(ByteOrder.BIG_ENDIAN);
        buf.putFloat(bigendian);
     
        buf.order(ByteOrder.LITTLE_ENDIAN);	
        return buf.getFloat(0);
    }
    (ici cette classe transcrit un FLOAT en BigEndian vers un Little Endian)

    3) dans TesteJavaComm : faire appel à cette classe avec en argument le float à envoyer au RS232!

    Merci à toi DJSnipe : décidément il y avait tout dans ton premier post, mais le temps que je mette tout ça en place dans mon crâne!! Ton aide fut en tout cas sur-utile, et le plus appréciable est que tu n'as pas donné une soluce tout cuit (pistes après pistes, y'a eu de quoi progresser)

    J'espère qu'en tout cas le cheminement de ma galère avec la solution au bout sera utile à quelqu'un novice comme moi et qui se confronterait aux mêmes soucis!!
    Bonne journée à tous

  15. #15
    Membre confirmé Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Points : 493
    Points
    493
    Par défaut
    tu as réussi !!!!!!!!

    Ravi d'avoir pu t'aider à arriver au résultat, la problématique n'est pas évidente et il faut bien avoir en tête tout les pièges techniques.
    Bonne continuation.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème lors de l'envoi de données entre servlet et JSP
    Par julia_m dans le forum Servlets/JSP
    Réponses: 44
    Dernier message: 23/08/2012, 12h10
  2. Problème lors de l'envoi de données de flash à un script PHP
    Par Winchack dans le forum ActionScript 3
    Réponses: 2
    Dernier message: 25/09/2008, 22h44
  3. Problème lors de l'envoi de données via laision RS 232
    Par Rastaforien dans le forum Langage
    Réponses: 9
    Dernier message: 26/06/2008, 11h54
  4. [SQL] Pb Sql lors de l envoie des données via un formulaire
    Par xtiand4 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 12/06/2006, 14h18
  5. erreur lors de l'envoie de donné via les socket.
    Par poporiding dans le forum C++
    Réponses: 1
    Dernier message: 23/05/2006, 14h23

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