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 :

envoi serveur client impossible


Sujet :

Entrée/Sortie Java

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 130
    Par défaut envoi serveur client impossible
    classe du 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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
    import java.io.*;
    import java.net.*;
    import javax.swing.*;
    import java.awt.event.*;
    import java.awt.*;
     
     
    public class Ser2  extends JFrame{
    	static final int port =8080;
    	public static  JTextField text1;public static  JTextField text2;
            public static JButton b2;
            Socket soc;
            BufferedReader plec;
            PrintWriter pred;
     
     
     
     
    public Ser2(){
        super("Serveur");
        Container c=getContentPane();
        text1=new JTextField("");b2=new JButton ("gomi");text2=new JTextField("");
        c.setLayout(null);
        text1.setBounds(50,100, 200, 20); b2.setBounds(50,250, 50, 20);text2.setBounds(50,50, 200, 20);
        c.add(text1);c.add(b2);c.add(text2);
        setBounds(0, 0, 400, 400);
        setVisible(true);
     
    try { ServerSocket s = new ServerSocket(port);
    		soc = s.accept();
    		plec = new BufferedReader(new InputStreamReader(soc.getInputStream()));
    		pred = new PrintWriter(new BufferedWriter(new OutputStreamWriter(soc.getOutputStream())),true);
    }
    	catch (IOException e2){System.out.println("erreur");}
     
    this.addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
    System.exit(0);
     
    }});
     
    class AL1 implements ActionListener {
    public void actionPerformed(ActionEvent e) {
                    String str = text2.getText();
    		pred.println(str);}}
    b2.addActionListener(new AL1());
     
     
     
     
     
                    while (true)
    		   {try {String str = plec.readLine();
    		   if (str.equals("END")==false)text1.setText(str); 
    		   else  break;}catch (IOException e3){System.out.println("erreur");}
    	}
     
     
     
     
     
     
    }}
    classe client:
    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    import java.io.*;
    import java.net.*;
    import javax.swing.*;
    import java.awt.event.*;
    import java.awt.*;
     
     
    public class Ser2  extends JFrame{
    	static final int port =8080;
    	public static  JTextField text1;public static  JTextField text2;
            public static JButton b2;
            Socket soc;
            BufferedReader plec;
            PrintWriter pred;
     
     
     
     
    public Ser2(){
        super("Serveur");
        Container c=getContentPane();
        text1=new JTextField("");b2=new JButton ("gomi");text2=new JTextField("");
        c.setLayout(null);
        text1.setBounds(50,100, 200, 20); b2.setBounds(50,250, 50, 20);text2.setBounds(50,50, 200, 20);
        c.add(text1);c.add(b2);c.add(text2);
        setBounds(0, 0, 400, 400);
        setVisible(true);
     
    try { ServerSocket s = new ServerSocket(port);
    		soc = s.accept();
    		plec = new BufferedReader(new InputStreamReader(soc.getInputStream()));
    		pred = new PrintWriter(new BufferedWriter(new OutputStreamWriter(soc.getOutputStream())),true);
    }
    	catch (IOException e2){System.out.println("erreur");}
     
    this.addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
    System.exit(0);
     
    }});
     
    class AL1 implements ActionListener {
    public void actionPerformed(ActionEvent e) {
                    String str = text2.getText();
    		pred.println(str);}}
    b2.addActionListener(new AL1());
     
     
     
     
     
                    while (true)
    		   {try {String str = plec.readLine();
    		   if (str.equals("END")==false)text1.setText(str); 
    		   else  break;}catch (IOException e3){System.out.println("erreur");}
    	}
     
     
     
     
     
     
    }}
    quand j'execute les 2 classes à part,ça marche.
    Maintenant que veux créer 2 autre fenetres dans chacune un boutton.
    j'ai mis un écouteur sur chaque boutton et au clique j'instancie la classe serveur ou clientà l'execution,j'ai mes 2 nouvelles fenetres,mais dès que je clique sur les boutton pr avoir les fenetre Cli2 et Ser2,ça bloque!!!!qlq1 peut me dire pk?
    merci

  2. #2
    Membre chevronné Avatar de Rayndell
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 289
    Par défaut
    Lorsque tu instancies ton serveur, il accepte les sockets, donc il boucle en attendant les connexions, ce qui fait que ton programme bloque. Pour lancer ton serveur indépendemment de l'interface graphique, crée un thread, redéfinit sa méthode run() et lance le par start(). Pareil pour le client, mais je pense que c'est plutôt ton serveur qui bloque.

    P.S : une petite remarque : les classes Client et Serveur sont les mêmes... Tu as posté deux fois la même classe.

Discussions similaires

  1. probleme envoi donnees serveur/client
    Par Romanzo_Criminale dans le forum C++
    Réponses: 5
    Dernier message: 24/09/2009, 23h20
  2. Problème UDP Client/Serveur : Reception impossible.
    Par qhardy dans le forum Entrée/Sortie
    Réponses: 0
    Dernier message: 01/03/2009, 17h50
  3. Client Serveur, détecter la fin d'envoi du client
    Par Link3 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 18/07/2008, 09h56
  4. Socket envoi message Client/Serveur
    Par sebkill dans le forum C#
    Réponses: 27
    Dernier message: 28/05/2008, 22h34
  5. Problème envoi/reception serveur client
    Par Sadz74 dans le forum C#
    Réponses: 3
    Dernier message: 15/02/2008, 19h13

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