Client Graphique
ClientGraphique.java
import javax.swing.*;
import java.awt.*;
import java.util.*;
import java.io.*;
import java.net.*;
public class ClientGraphique extends JFrame {
private JTextField texteF; // zone de saisie des messages à envoyer
private JTextArea texteA; // zone des messages reçus
private PrintStream netOut; // pour écrire sur le réseau
public ClientGraphique( String titre, PrintStream ps ) {
super( titre );
netOut = ps;
BorderLayout bl;
bl = new BorderLayout();
this.setLayout( bl );
texteA = new JTextArea ( 30, 15 );
JScrollPane scrollP;
scrollP = new JScrollPane( texteA );
texteA.setEditable(false);
this.add( scrollP, BorderLayout.CENTER );
this.add( texteA, BorderLayout.CENTER );
JPanel pan;
pan = new JPanel();
JButton envoyer;
envoyer = new JButton ( "envoyer" );
texteF = new JTextField( 20 );
pan.add( envoyer );
pan.add( texteF );
this.add( pan, BorderLayout.SOUTH );
Ecouteur ec;
ec = new Ecouteur( 1, this);
envoyer.addActionListener( ec );
Ecouteur ec2;
ec2 = new Ecouteur(2, this);
texteF.addActionListener(ec2);
this.pack();
this.setVisible(true);
}
public void entrer() {
String ligne;
ligne = texteF.getText();
netOut.println( ligne );
texteF.setText( "" );
texteA.append("Message envoyé :\n->" + ligne +"\n");
}
public void ecrire ( String ligne ){
texteA.append(ligne + "\n" ); // ecrit dans le textArea
}
public static void main (String[] args) throws IOException {
Socket s;
InputStream in;
OutputStream out;
Scanner scan;
PrintStream ps;
Scanner clavier;
String ligne;
s = new Socket ("localhost", 60000);
in = s.getInputStream();
scan = new Scanner(in); // Pour lire sur le réseau
out = s.getOutputStream();
ps = new PrintStream(out); // Pour écrire sur le réseau
clavier = new Scanner (System.in);
ClientGraphique cg;
cg = new ClientGraphique("Chat version 1.0", ps );
while( true ){
ligne = scan.nextLine(); // récup réseau
cg.ecrire(ligne);
}
}
}
Ecouteur.java
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Ecouteur implements ActionListener {
private int choix;
private ClientGraphique fen;
public Ecouteur( int c, ClientGraphique f) {
choix = c;
fen=f;
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
switch(choix){
case 1 :
//Appelle la fonction qui permettra d'effacer le mot
fen.entrer();
break;
case 2 :
fen.entrer();
break;
}
}
}
Serveur.java
import java.net.*;
import java.io.*;
import java.util.*;
public class Serveur {
public static void main (String[] args)throws IOException{
Socket s;
ServerSocket ss;
InputStream in;
OutputStream out;
Scanner scan;
PrintStream ps;
String ligne;
Scanner clavier;
ss = new ServerSocket (60000);
s = ss.accept();
in = s.getInputStream();
scan = new Scanner(in); // Pour lire sur le réseau
out = s.getOutputStream();
ps = new PrintStream(out); // Pour écrire sur le réseau
clavier = new Scanner (System.in);
while( true ){
ligne = scan.nextLine(); // récup réseau
//System.out.println(ligne);
//ligne = clavier.nextLine();
ps.println(ligne); // envoie au réseau
}
}
}