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

Langage Java Discussion :

java => c


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 10
    Points : 10
    Points
    10
    Par défaut java => c
    quel q'un peut m'aider j'arrive pas a envoyer un string du client qui est en java ver le serveur qui est en c
    j'ai arriver a ce que le client ce connecte au serveur et peut recevoir une chaine de caractaires de serveur
    merci d'avence

  2. #2
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 562
    Points : 15 502
    Points
    15 502
    Par défaut
    Précise d'avantage ton problème en postant du code si possible. Avec une description aussi vague de ton problème, ça va être difficile de t'aider.

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    le thred loncer lancer aprer acceptation par le serveur en c :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    void *requete(void *arg){
    int nb,sock,r=-1;
    char wbuffer[256]="juste un essai\n\0",rbuffer[256];
    sock=(int)arg;
    r = read(sock,rbuffer,strlen(rbuffer));
    if(r<0)perror("recv");
    printf("contenu: %s\n",rbuffer);
    write(sock,wbuffer,strlen(wbuffer));
    printf("transmition effectuer, mon tid est %u\n",pthread_self());
    close(sock);
    }
    l'action d'une bouton du client en java :
    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
     
    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
            // TODO add your handling code here:
            try{
                    byte[] b = "sdfvg".getBytes();
                      InetAddress addr=InetAddress.getByName("localhost");
                      int port = 1986 ;
                      Socket socket = new Socket(addr,port);
                      DataInputStream in = new DataInputStream(
                          new BufferedInputStream(socket.getInputStream()));
                      /*PrintStream out = new PrintStream(
                          new BufferedOutputStream(socket.getOutputStream()));*/
                      PrintWriter out = new PrintWriter(
                          socket.getOutputStream());
                      out.print("envoi".getBytes("US-ASCII"));
                      String str = in.readLine();
                      System.out.println(str);
              }catch(Exception e){
                  System.err.println("erreur socket : "+e);
            }
        }

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 552
    Points : 21 608
    Points
    21 608
    Par défaut
    Ça aurait aussi été une bonne idée de nous donner le résultat.

    Voilà deux choses qui me choquent :

    Dans ton code C :
    Tu fais un appel à read, et comme taille max tu donnes strlen(rbuffer). Or, rbuffer est un tableau de char que tu viens d'allouer sur la pile. Son contenu est inconnu. Quoi qu'il en soit, strlen(rbuffer) peut renvoyer n'importe quoi, mais sauf hasard incroyable, pas la taille de rbuffer. Je conseille de mettre 256 à la place.

    Dans ton code Java :
    Tu envoies des octets, représentants une chaîne de caractères, mais tu n'envoies pas de "marqueur" de fin de chaîne. Le programme receveur ne peut pas savoir quand s'arrête la chaîne. Il faudrait ajouter le marqueur utilisé habituellement en C, l'octet nul. Bref, envoyer la chaîne "envoi\0" au lieu de "envoi".
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    merci pour votre aide j'ai trouver la solution
    just il faux faire "envoi".toCharArray()

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 552
    Points : 21 608
    Points
    21 608
    Par défaut
    Ah, oui. Aussi.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. le Java est la continuité du C++ ???
    Par Vincent PETIT dans le forum Débats sur le développement - Le Best Of
    Réponses: 33
    Dernier message: 25/08/2005, 20h17
  2. Envoi de Datagrames par IP en JAVA
    Par the java lover dans le forum Développement
    Réponses: 2
    Dernier message: 14/08/2002, 11h44
  3. directx et java?? possible??
    Par jiraiya dans le forum DirectX
    Réponses: 3
    Dernier message: 09/07/2002, 19h55
  4. webcam : lire sur un port usb en c/c++ ou java. sous win. ?
    Par flo007 dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 24/05/2002, 23h24
  5. Service de nommage java C++
    Par Anonymous dans le forum CORBA
    Réponses: 3
    Dernier message: 15/04/2002, 12h48

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