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 :

discussion entre socket client et serveur (TCP)


Sujet :

Entrée/Sortie Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 213
    Points : 43
    Points
    43
    Par défaut discussion entre socket client et serveur (TCP)
    Bonjour, ca fait deja quelques temps que j'etudie les socket, et je viens de finir un truc tout con:
    Une socket serveur qui lit ce que le client lui envoie, et lui renvoie un message comme quoi sa ligne a bient ete lu,
    et une socket cliente qui envoie un message et qui recoit un message de la socket serveur. Tout ce beau monde utilise le protocole TCP.
    Bien entendu, si je suis ici, c'est que ca ne marche pas^^.
    Effectivement, quand je lance ma socket serveur, puis ma socket cliente, rien ne s'affiche, aucun message d'erreur, mais rien ne s'affiche.

    Voici le code de ma socket serveur:

    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
    import java.net.*;
    import java.io.*;
     
     
    public class serveurTCP {
     
    	static int port = 9333;
     
    	public static void main(String[] args)throws Exception {
     
    			ServerSocket serveur = new ServerSocket(port); //initialisation du serveur sur l'adresse local et sur le port 9333
    			Socket client = serveur.accept(); //on accepte le prochain client qui essaye de se connecter
    			String ligne;
    			try {
    				// on cré reader, le buffer qui se cre a partir de l'objet inputstreamreader et qui recupere le flux du client
    				BufferedReader reader = new BufferedReader(new InputStreamReader(client.getInputStream()));
    				//la on recupere le flux d'ecriture vers le client
    				BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(client.getOutputStream()));
    				String message = "votre ligne a bien ete lu par le serveur";
    				writer.write(message);
    				while((ligne = reader.readLine()) != null)
    					System.out.println(ligne);
    				writer.flush();
    				writer.close();
    				reader.close();
     
    		}catch(Exception e) {
    			System.out.println("fatal error");
    			e.printStackTrace();
    		}
    	}
     
     
    }
    Et voici le code de ma socket cliente:

    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
    import java.net.*;
    import java.io.*;
     
    public class clientTcp {
     
    	public static void main(String[] args)throws Exception {
    		InetAddress ip = InetAddress.getLocalHost();
    		int port = 9333;
    		Socket client = new  Socket(ip, port);
    		BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(client.getOutputStream()));
    		String donneEnvoye = "yoann";
    		writer.write(donneEnvoye);
    		BufferedReader reader = new BufferedReader(new InputStreamReader(client.getInputStream()));
    		String donneLu = null;
    		while((donneLu = reader.readLine()) != null)
    		System.out.println(donneLu);
     
    		writer.flush();
    		writer.close();
    		reader.close();
    	}
     
     
    }
    (c'est normal que le client ne gere pas les exception, je feraica quand ca marchera)

    Voila, merci d'avance

  2. #2
    Membre averti
    Profil pro
    Développeur Java
    Inscrit en
    Novembre 2007
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2007
    Messages : 301
    Points : 368
    Points
    368
    Par défaut
    En survolant comme ça, il ne me semble pas qu'il y ait de problème de procédure de connexion. Par contre tu utilises des Buffer et je pense que ça peut poser un problème. Les données ne sont pas écrites directement.

    Sinon pense à utiliser les ObjectInputStream qui permettent de communiquer beaucoup plus simplement en échangeant des objets. Tu as la possibilité d'utiliser RMI qui permet de faire des appels à distance et donc tu te passes de toute la gestion des sockets.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 213
    Points : 43
    Points
    43
    Par défaut
    RMI, que'est ce que c'est?
    Que veux tu dire par tuiliser des ObjectInputStream?
    Sinon, tu es sur que ca ne vient pas de la connection entre serveur/client?(je pensais que c'tait ca^^)
    Et en principe il n'y a pas de probleme avec les buffer, vu que le buffer d'ecriture est vidé.

    Merci beaucoup pour ton aide

Discussions similaires

  1. Créer un client pour serveur TCP/IP
    Par Pierre de Nice dans le forum Débuter
    Réponses: 7
    Dernier message: 26/01/2009, 22h56
  2. Client et serveur TCP
    Par caro_caro dans le forum Entrée/Sortie
    Réponses: 8
    Dernier message: 01/10/2008, 14h34
  3. Application client et serveur TCP/IP
    Par engi dans le forum C++Builder
    Réponses: 2
    Dernier message: 31/10/2006, 21h11
  4. Réponses: 5
    Dernier message: 11/03/2006, 17h18
  5. [C++] Probleme de connexion socket client à mon serveur smtp
    Par matthieu5978 dans le forum Développement
    Réponses: 2
    Dernier message: 04/12/2005, 09h19

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