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

Java Discussion :

Dialogue entre C et java


Sujet :

Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2006
    Messages : 88
    Points : 48
    Points
    48
    Par défaut Dialogue entre C et java
    Bonjour,
    Je ne sais pas exactement si c'est la bonne place... Cela dit le problème est du côtés du java.
    Mon problème est le suivant :
    Pour un projet de fac j'ai un client en c qui doit fournir des informations sous la forme d'une structure avec des enums entre autre dedans.
    J'ai un serveur qui doit recevoir cette fameuse structure est l'utiliser.
    En Java il n'existe pas de type structure alors pour voir j'ai définie une classe du même nom avec les même attributs... Mais quand je la réceptionne j'ai une exception du genre corrupted...
    Je ne sais pas trop comment en conséquence faire pour que les deux programmes puissent dialoguer.
    Quelqu'un pourrait-il m'aiguiller? Merci d'avance
    Gwenhaël

  2. #2
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Bonjour, il faut t'orienter vers le CORBA pour faire une couche de communication entre le client C et le serveur Java.

    Le principe est de définir un fichier .idl qui déclare des structures/interfaces, compiler ce fichier avec un compilateur CORBA-> java, ça te donnera des .class à utiliser du côté serveur, un autre compilateur CORBA-> C pour obtenir les .c ou .h je ne sais plus.

    Ensuite il faut démarrer la partie "serveur corba" en fonction de certains paramètres (hôte, port) et la partie "client corba" se connectera à ce serveur.

    Il y a un forum corba pour plus de détails.

  3. #3
    Membre expérimenté
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 013
    Points : 1 381
    Points
    1 381
    Par défaut
    Tu peux établir un protocole de communication entre ton client C et ton serveur Java. Par exemple, tu envoies une trame au serveur Java via une socket dont le contenu sera :
    1. l'identificateur de la trame
    2. la taille de la trame
    3. les données à envoyer


    tu vas par exemple envoyer
    01020champs_1champs_2
    Oú 01 est l'identificateur de la trame et 020 la longueur de la trame.

  4. #4
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Ca peut marcher aussi.

    Tu peux aussi mettre un serveur http et envoyer des informations sous forme de requêtes.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2006
    Messages : 88
    Points : 48
    Points
    48
    Par défaut
    Le problème fondamental c'est que je n'ai ni droit au corba ni à un serveur http.
    J'ai juste un socket tcp entre les deux.
    Sans parler que le dialogue doit être le plus rapide possible.
    Le projet c un client pour un jeu.
    Le c se connecte à un arbitre et à l'adversaire, le c se connecte au java qui lui même fait le pont avec prolog.
    il faut que prolog à travers java, le socket et le c fournisse un coup en moins de 6 secondes...

  6. #6
    Membre chevronné

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Points : 1 954
    Points
    1 954
    Par défaut
    C'est donc à toi de définir et implémenter la couche protocolaire. Vise la concision de la trame émise, mais fais très attention au codage des flotants et des signés qui peuvent varier entre les 2 langages.

  7. #7
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Dans ce cas envoi des messages directement sur la socket comme l'a dit muad'dib par contre je ne sais pas si ça tiendra les contraintes de performances aller/retour.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2006
    Messages : 88
    Points : 48
    Points
    48
    Par défaut
    Au final j'ai appliqué cette technique...
    Deux cas se présentent. Soit juste une commande genre FIN, RESET,... Soit il y a des coordonnées.
    Ce qui fait qu'au lieu de passer une structure avec une taille fixe trop importante dans certains cas j'envoie le strict minimum et ça marche impec.
    Merci beaucoup

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

Discussions similaires

  1. Dialogue entre Java et Objective C
    Par Battant dans le forum Général Java
    Réponses: 4
    Dernier message: 04/04/2011, 11h48
  2. Dialogue entre Java (Jboss) et CICS (mainframe)
    Par Moun925 dans le forum z/OS
    Réponses: 7
    Dernier message: 10/03/2009, 16h58
  3. Com entre une appli java et du javaScript dans du Html
    Par bpy1401 dans le forum Applets
    Réponses: 1
    Dernier message: 20/07/2005, 09h54
  4. Réponses: 7
    Dernier message: 06/04/2005, 19h18
  5. [FLASH MX2004] [AS2] Dialogue entre 2 SWF- tellTarget ???
    Par Geilgestorm dans le forum ActionScript 1 & ActionScript 2
    Réponses: 11
    Dernier message: 24/10/2004, 22h07

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