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 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
|
class ClientWorker implements Runnable
{
private Socket client;
ClientWorker(Socket client)
{
this.client = client;
}
public synchronized void run()
{
String line;
BufferedReader in = null;
PrintWriter out = null;
try
{
in = new BufferedReader(new InputStreamReader(client.getInputStream()));
out = new PrintWriter(client.getOutputStream(), true);
} catch (IOException e)
{
System.out.println("erreur lecture");
System.exit(-1);
}
while(true)
{
try
{
line = in.readLine();
System.out.println("le serveur a recu "+line);
out.println(line); //accuser de reception
} catch (IOException e)
{
System.out.println("erreur de lecture");
System.exit(-1);
}
}
}
}// End ClientWorker class
class SocketServer extends JFrame
{
ServerSocket server = null;
SocketServer() //Begin Constructor
{
// construction de la fenetre
} //End Constructor
public void listenSocket()
{
try
{
server = new ServerSocket(4444);
}catch (IOException e)
{
System.out.println("probleme port 4444");
System.exit(-1);
}
while(true)
{
ClientWorker w;
try
{
w = new ClientWorker(server.accept());
Thread t = new Thread(w);
t.start();
}
catch (IOException e)
{
System.out.println("Accept failed: 4444");
System.exit(-1);
}
}
}
protected void finalize()
{
try{
server.close();
}catch (IOException e)
{
System.out.println("probleme fermeture socket");
System.exit(-1);
}
}
public static void main(String[] args)
{
SocketServer frame = new SocketServer();
frame.setTitle("Server Multi threads Program");
WindowListener l = new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
};
frame.addWindowListener(l);
frame.pack();
frame.setVisible(true);
frame.listenSocket(); ////////// very important this code !
}
}//////////////////////// End SocketServer class |
Partager