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 :

communication tcp avec Objects


Sujet :

Entr�e/Sortie Java

  1. #1
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Janvier 2021
    Messages
    14
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 29
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - Mat�riel informatique

    Informations forums :
    Inscription : Janvier 2021
    Messages : 14
    Par d�faut communication tcp avec Objects
    Bonjour � tous,
    j'ai quelques difficult�s sur la compr�hension de la communication TCP, j'esp�re que vous pourrez m'aider. Je dois faire communiquer deux IHM (une pointeuse qui envoie les donn�es de pointage et une appli Centrale qui les r�cup�re) et je ne sais pas vraiment comment m'y prendre. Dois-je maintenir une connexion et des qu'un employ� pointe, on envoie les donn�es ? ou bien a caque pointage �tablir une nouvelle connexion et envoy� ? .. je suis un peu perdu sur le fait de faire communiquer deux appli entre elles. Si quelqu'un aurait un avis sur la question ca m'aiderai beaucoup.
    Merci d'avance !

  2. #2
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 698
    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 698
    Par d�faut
    Les deux approches sont possibles. Mais pour une pointeuse, tu n'as pas besoin de d�lai de r�ponse ultra-rapide et il y a potentiellement de longues p�riodes sans communication. Donc je pense qu��tablir une nouvelle connexion � chaque pointage serait p�f�rable.

    Pour faire communiquer deux applications au travers du r�seau, le plus basique est d'utiliser des Sockets. Ca va pas �tre possible de tout d�tailler sur un forum mais tu as par exemple ce tuto :
    https://jmdoudoux.developpez.com/cou...-net.php#net-4

  3. #3
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Janvier 2021
    Messages
    14
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 29
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - Mat�riel informatique

    Informations forums :
    Inscription : Janvier 2021
    Messages : 14
    Par d�faut
    D'accord je vais regarder ca , merci pour ta r�ponse

  4. #4
    Membre �m�rite Avatar de Cincinnatus
    Homme Profil pro
    D�veloppeur d'applications m�tier
    Inscrit en
    Mars 2007
    Messages
    593
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : D�veloppeur d'applications m�tier
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 593
    Par d�faut
    Bonjour,

    Normalement chaque pointeuse est autonome et peut supporter de ne plus �tre connect�e pendant quelques heures � son serveur. L'essentiel dans ce cadre est de conserver le pointage de chaque employ� ; une coupure r�seau ne doit pas avoir de cons�quences sur le temps de travail de chacun, sinon gare aux abus ! (de l'employ� ou de l'employeur).

    En informatique de gestion RH, le point le plus crucial a toujours �t� pour les employ�s de pouvoir poser des cong�s et que leur temps de travail soit correctement d�compt�. Le moindre �cart per�u donne lieu � r�clamation ! (c'est du v�cu !)

    La paye aussi �videmment est importante, mais il est difficile de la contr�ler de mani�re tr�s pr�cise (lire une fiche de paye n'est pas simple), alors que les heures de pointage...

  5. #5
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Janvier 2021
    Messages
    14
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 29
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - Mat�riel informatique

    Informations forums :
    Inscription : Janvier 2021
    Messages : 14
    Par d�faut
    Bonjour Cincinnatus,
    heureusement pour moi je suis encore en phase d'apprentissage de l'informatique. ^^.
    Cependant nous avons eu des directives quant au coupures de connexion. Si la pointeuse ne peut envoy� ses donn�es � l'appli principale elle peut s�rialiser les donn�es dans un fichier local et d�s que la connexion sera r�tablie elle les envoient. Et pour la conception d'un client serveur j'aurai aim� une petite pr�cision : je vois dans des exemples les m�thode writeObject et readObject des ObjectOutputStream et ObjectInputStream qui s'utilisent des fois avec fichier et des fois sans. Quelles sont les diff�rences ?

  6. #6
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 698
    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 698
    Par d�faut
    Le ObjectOutputStream s'utilise avec un flux, il y a diff�rents type de flux : vers un fichier, vers un socket r�seau, vers la console, ... Tout d�pends de l'usage que tu souhaites faire de l'objet que tu s�rialises.

  7. #7
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Janvier 2021
    Messages
    14
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 29
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - Mat�riel informatique

    Informations forums :
    Inscription : Janvier 2021
    Messages : 14
    Par d�faut
    Mmmh d'accord, la je souhaite envoy� les donn�es sur un autre ordinateur qui est sur un r�seau diff�rent donc je dois utilis� le flux de socket r�seaux si je comprend bien.
    Ca va beaucoup m'aider merci !

  8. #8
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Janvier 2021
    Messages
    14
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 29
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - Mat�riel informatique

    Informations forums :
    Inscription : Janvier 2021
    Messages : 14
    Par d�faut
    Voila ce que j'ai fait : si vous pouviez me dire ce qui ne va pas
    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
     
     
    public class TCPServer extends Thread {
       private ServerSocket serverSocket;
       static Object objet;
     
     
       public TCPServer(int port) throws IOException {
          serverSocket = new ServerSocket(port);
       }
     
     
       public void run() {
     
          while(true) {
             try {
                System.out.println("Serveur attend le client sur le port " + serverSocket.getLocalPort() + "...");
                Socket server = serverSocket.accept();
     
                System.out.println("Serveur connecté à la socket d'adresse : " + server.getRemoteSocketAddress());
                ObjectInputStream is = new ObjectInputStream(server.getInputStream());
     
                objet = is.readObject();
     
                System.out.println(objet);
             } 
             catch (SocketTimeoutException s) {
                System.out.println("Socket à atteint son temps limite");
                break;
             } 
             catch (IOException e) {
                e.printStackTrace();
                break;
             } 
             catch (ClassNotFoundException e) {
    			e.printStackTrace();
             } 
          }
       }
    }
    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
     
    public class TCPClient {
     
     
     
    	public void SendObject(Object objet, String serverName, int port) throws ClassNotFoundException{
    		 try {
    	         System.out.println("Connexion au serveur d'adresse " + serverName + " sur le port client " + port);
    	         Socket client = new Socket(serverName, port);
     
    	         System.out.println("Connexion établie sur le client d'adresse " + client.getRemoteSocketAddress());
     
    	         ObjectOutputStream out = new ObjectOutputStream(client.getOutputStream());
     
    	         out.writeObject(objet + " from " + client.getLocalSocketAddress());
     
    	         client.close();
    		 }
    		 catch (IOException e) {
    	         e.printStackTrace();
    	     }
    	} 
    }

  9. #9
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 698
    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 698
    Par d�faut
    A premi�re vue �a me semble pas mal a part le out.writeObject(objet + " from " + client.getLocalSocketAddress()) dont je ne comprend pas le but. Si tu veut r�cup�rer un objet il faut envoyer le m�me type d'objet et pas y ajouter une chaine de caract�re qui semble pr�vue pour le d�bogage.

  10. #10
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Janvier 2021
    Messages
    14
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 29
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - Mat�riel informatique

    Informations forums :
    Inscription : Janvier 2021
    Messages : 14
    Par d�faut
    Oui effectivement ca na pas de sens ^^. D'apr�s vous avoir un attribut de type Object en static dans la classe serveur est la meilleur fa�on pour r�cup�rer l'object lu par readObject() ?

  11. #11
    Mod�rateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par d�faut
    Ben non, pourquoi static ? Il n'y en a qu'une seule, de pointeuse ? Enfin, de toute fa�on quel int�r�t qu'il soit static ?

    Et pour le type Object, c'est bizarre aussi. On peut pas demander les donn�es d'un Object, il faut le cast d'abord vers sa classe r�elle, alors pourquoi ne pas le faire d�s que possible ?
    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. communication tcp/ip avec labview
    Par sa7lia1990 dans le forum LabVIEW
    R�ponses: 5
    Dernier message: 08/05/2012, 11h28
  2. Probl�me de communication TCP/IP avec fonction send bloqu�
    Par TheToune dans le forum D�veloppement
    R�ponses: 0
    Dernier message: 21/09/2011, 10h05
  3. Communication TCP avec LabVIEW
    Par sanzero dans le forum LabVIEW
    R�ponses: 5
    Dernier message: 28/04/2011, 10h22
  4. R�ponses: 1
    Dernier message: 20/05/2009, 09h55
  5. Communication TCP/IP avec Flash
    Par Rodrigue dans le forum Dynamique
    R�ponses: 3
    Dernier message: 23/10/2006, 15h19

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