Partage
  • Partager sur Facebook
  • Partager sur Twitter

Java vers C

et inversement , socket

Sujet résolu
    22 avril 2012 à 21:36:45

    Bonjour,

    voici mon problème : je dois faire communiquer, via des sockets, 2 clients (par pièce) en Java avec un serveur C.
    Pour cela, chaque client doit, à sa connexion, fournir au serveur une chaîne de caractère et un entier.

    La chaîne de caractères représente en fait le nom d'une pièce, et l'entier un élément de la pièce.

    Le serveur étant un serveur multiclient, lorsque l'utilisateur envoie un ordre, il précise le nom de la pièce et l’élément à qui il s'adresse. Le serveur doit donc transmettre l'ordre au bon élément de la bonne pièce.

    Problème : j'avais comme idée de faire un struct, mais apparemment en Java ceci correspond directement à une classe. Or, si je crée une classe et que j'envoie un objet via un flux, je ne vois pas comment je peux le traiter du côté du serveur C, et inversement.

    J'espère que vous pourrez m'aider.
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      23 avril 2012 à 16:58:55

      Tu n'enverras pas un objet directement comme ça.
      Si tu le fais java va le sérialisé et le programme de l'autre coté devra le dé-sérialisé.
      Je pense que le plus simple c'est que tu le sérialise toi même sous forme JSon ou XML, et puis de l'autre coté du le dé-sérialise pour remplir ta structure.

      (sérialisé = mettre sous forme de chaîne de caractère ou d'un flux d'octet en gros)
      • Partager sur Facebook
      • Partager sur Twitter
        28 avril 2012 à 22:43:20

        Merci beaucoup pour ta réponse.
        J'avais pensé à la sérialisation, mais ça n'arrangeait finalement pas non plus mon problème pour savoir à qui délivrer l'ordre.
        Je me suis donc arrangée pour faire passer des ByteArray pour l'identification des éléments. Le serveur qui récupère les informations tient à jour une liste de ses clients. Ainsi, avec le numéro de la socket, il est capable de savoir de quelle pièce ça vient, et de savoir à partir du nom d'une pièce avec quel client communiquer, en consultant son fichier.

        En tout cas merci quand même !
        • Partager sur Facebook
        • Partager sur Twitter

        Java vers C

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown