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

Services Web Java Discussion :

Connexion à un serveur


Sujet :

Services Web Java

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 212
    Points : 23
    Points
    23
    Par défaut Connexion à un serveur
    Bonjour,
    J'ai un programme Java qui permet de faire une connexion entre un client et un 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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    package test;
    import java.io.IOException;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.io.OutputStream;
    import java.lang.ClassNotFoundException;
    import java.net.InetAddress;
    import java.net.Socket;
    import java.net.UnknownHostException;
     
    import javax.swing.*;
    public class ClientSocketExample {
    	private static Socket socket;
     
    	public static void main(String[] args) {
    		while (true){
    			try{
    				String host = "localhost";
    	            int port = 25000;
    	            InetAddress address = InetAddress.getByName(host);
    	            socket = new Socket(address, port);
    				ObjectOutputStream oos=new ObjectOutputStream(socket.getOutputStream());
    				String str=JOptionPane.showInputDialog(null,"Enter client Message");
    				oos.writeObject(str);
    				ObjectInputStream ois=new ObjectInputStream(socket.getInputStream());
    				String message=(String) ois.readObject();
    				System.out.println("Message: "+message);
     
    			}
     
    			catch (Exception exception)
    	        {
    	            exception.printStackTrace();
    	        }
    	        finally
    	        {
    	            //Closing the socket
    	            try
    	            {
    	                socket.close();
    	            }
    	            catch(Exception 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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    package test;
     
    import java.io.IOException;
    import java.io.ObjectInputStream;
    import java.lang.ClassNotFoundException;
    import java.lang.Runnable;
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.ObjectOutputStream;
    import java.io.OutputStream;
    import java.io.OutputStreamWriter;
    import java.net.ServerSocket;
    import java.net.Socket;
     
    	public class Server
    	{
    		private ServerSocket server;
    		private int port=25000;
     
    	    public Server(){
    	    	try{
    	    		server=new ServerSocket(port);
    	    	}
    	    	catch (IOException e){
    	    		e.printStackTrace();
    	    	}
    	    }
    	    public static void main(String[] args)
    	    {
    	    	Server exemple=new Server();
    	    	exemple.handleConnection();}
    	    public void handleConnection(){
    	    	System.out.println("Waiting for client message");
    	    while(true){
    	    	try{
    	    		Socket socket=server.accept();
    	    		new ConnectionHandler(socket);
    	    	}
    	    	catch(IOException 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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    package test;
     
    import java.io.IOException;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.net.Socket;
     
    public class ConnectionHandler implements Runnable {
    private Socket socket;
    public ConnectionHandler(Socket socket){
    	this.socket=socket;
    	Thread t=new Thread(this);
    	t.start();
     
    }
    public void run(){
    	try{
    		ObjectInputStream ios=new ObjectInputStream(socket.getInputStream());
    		String message=(String) ios.readObject();
    		System.out.println("Message Received "+message);
    		ObjectOutputStream oos=new ObjectOutputStream(socket.getOutputStream());
    		oos.writeObject("Hi....");
    		ios.close();
    		oos.close();
    		socket.close();
    		System.out.println("Waiting for client Message.......");
     
    	}
    	catch(IOException e){
    		e.printStackTrace();
    	}
    	catch(ClassNotFoundException e){
    		e.printStackTrace();
    	}
    }
    }
    lorsque j’exécute cet erreur est affiché
    java.net.ConnectException: Connection refused: connect

  2. #2
    Expert confirmé Avatar de yildiz-online
    Homme Profil pro
    Architecte de domaine
    Inscrit en
    Octobre 2011
    Messages
    1 444
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de domaine

    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 444
    Points : 4 563
    Points
    4 563
    Par défaut
    Au niveau du client?
    PXL le retro-gaming facile: Essayez-le

    Yildiz-Engine an open-source modular game engine: Website
    Yildiz-Online a 3D MMORTS in alpha: Facebook page / Youtube page

  3. #3
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 074
    Points : 7 978
    Points
    7 978
    Par défaut
    Tu as bien lancé le serveur je suppose ?
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 212
    Points : 23
    Points
    23
    Par défaut
    oui au niveau de client le problème le serveur j'ai lancé il est exécuté sans problème

  5. #5
    Expert confirmé Avatar de yildiz-online
    Homme Profil pro
    Architecte de domaine
    Inscrit en
    Octobre 2011
    Messages
    1 444
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de domaine

    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 444
    Points : 4 563
    Points
    4 563
    Par défaut
    et si tu ping sur le server(avec nmap ou telnet), ça répond?
    PXL le retro-gaming facile: Essayez-le

    Yildiz-Engine an open-source modular game engine: Website
    Yildiz-Online a 3D MMORTS in alpha: Facebook page / Youtube page

  6. #6
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 212
    Points : 23
    Points
    23
    Par défaut
    non j'ai pas testé en plus je ne possède pas ces serveurs sur mon PC

  7. #7
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 074
    Points : 7 978
    Points
    7 978
    Par défaut
    Bah oui mais si tu ne testes pas on ne saura pas t'aider tu sais ? Le plus simple est comme le dit yildiz-online est de faire un telnet sur le serveur cible et sur le bon port.

    Moi je vois bien quand je lance le serveur en local et le client, y'a 0 problème et ça fonctionne comme il faut.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 212
    Points : 23
    Points
    23
    Par défaut
    le problème que le socket client contient la boucle while qui à chaque fois attend l'introduction du message par le client donc il s'agit d'une boucle infinie si moi je force le programme à terminer une erreur est déclenché j'espère bien que vous me comprenez et quand j'ai essayé d'enlever cette boucle (While(true))il n'aura plus de réception message coté serveur.

  9. #9
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 074
    Points : 7 978
    Points
    7 978
    Par défaut
    Non personnellement je ne comprends pas ou se situe ton problème.

    Si tu fermes ton client de manière brutale (qui est la seule manière apparemment) ben le client se ferme et le serveur te fait une belle SocketException : Connection reset. Ce qui est normale.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 212
    Points : 23
    Points
    23
    Par défaut
    exactement c'est ça le problème c'est que la seule méthode de fermer mon programme de façon brutale
    il n'existe pas une autre méthode qui permet de le fermer sans générer l'exception

  11. #11
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 074
    Points : 7 978
    Points
    7 978
    Par défaut
    Si tu veux le faire de manière à ne pas avoir d'exceptions, il faut par exemple que le client envoye un message au serveur lui disant qu'il se déconnecte. Le serveur recevant devra sortir de sa boucle et fermer gentiment la socket.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  12. #12
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 212
    Points : 23
    Points
    23
    Par défaut
    Merci vous pouvez me donner le code de ça ou bien non s'il vous plait

Discussions similaires

  1. Windows sockets : ne peut pas me connecter au serveur...
    Par kernigansnotdead dans le forum Windows
    Réponses: 13
    Dernier message: 11/09/2005, 16h00
  2. [Debutant]Impossible de se connecter au serveur local
    Par Kenji dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 24/04/2005, 19h55
  3. [SOCKET] Client C connecté à un serveur Java
    Par missllyss dans le forum Développement
    Réponses: 2
    Dernier message: 07/06/2004, 13h14
  4. [Routeur/Socket] Connection Client/Serveur
    Par Clorish dans le forum Développement
    Réponses: 3
    Dernier message: 17/12/2003, 13h45
  5. Connecter un serveur avec ADSL et RTC
    Par Sunny dans le forum Développement
    Réponses: 7
    Dernier message: 09/09/2002, 11h15

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