import java.io.*;
Import java.net. *;
allgemeiner Kategorie Bediener {
statisches EinfaßungsclientSocket = -null;
statisches ServerSocket serverSocket = Null;
// dieser Schwätzchenbediener kann bis 10 Anschlüsse der Klienten annehmen
statisches clientThread t [] = neues clientThread [10];
allgemeine Staticlückenhauptleitung (Schnur args []) {
// der Rückstellungshafen
int port_number=2222;
wenn (args.length < 1)
{
System.out.println („Verbrauch: Java MultiThreadChatServer \ n " +
„Jetzt using Portnumber= " +port_number);
} sonst {
port_number=Integer.valueOf (args [0]) .intValue ();
}
Versuch {
serverSocket = neues ServerSocket (port_number);
}
Fang (IOException e)
{System.out.println (e);}
während (zutreffend) {
Versuch {
clientSocket = serverSocket.accept ();
für (int i=0; i<=9; i++) {
wenn (t [i] ==null)
{
(t [i] = neues clientThread (clientSocket, t)) .start ();
Bruch;
}
}
}
Fang (IOException e) {
System.out.println (e);}
}
}
}
Kategorie clientThread verlängert Gewinde {
DataInputStream ist = Null;
PrintStream OS = Null;
EinfaßungsclientSocket = -null;
clientThread t [];
allgemeines clientThread (Einfaßung clientSocket, clientThread [] t) {
this.clientSocket=clientSocket;
this.t=t;
}
Öffentlichkeitslücke laufen ()
{
Schnurlinie;
Schnurname;
Versuch {
= ist neues DataInputStream (clientSocket.getInputStream ());
OS = neues PrintStream (clientSocket.getOutputStream ());
os.println („Ihr name.") eintragen;
Name = is.readLine ();
os.println („hallo „+name+“ zu unserem Chat-Room. \ anmelden nicht Urlaub /quit in eine neue Linie“));
für (int i=0; i<=9; i++)
wenn (t [i]! =null && t [i]! =this)
t [i] .os.println („*** betrat A neuer Benutzer „+name+“ den Chat-Room!!! *** ");
während (zutreffend) {
Linie = is.readLine ();
wenn (line.startsWith („/quit“)) Bruch;
für (int i=0; i<=9; i++)
wenn (t [i]! =null) t [i] .os.println („< " +name+ " > „+line);
}
für (int i=0; i<=9; i++)
wenn (t [i]! =null && t [i]! =this)
t [i] .os.println („*** der Benutzer „+name+“ lässt den Chat-Room!!! *** ");
os.println („*** Tschüss „+name+“ *** ");
für (int i=0; i<=9; i++)
wenn (t [i] ==this) t [i] =null;
is.close ();
os.close ();
clientSocket.close ();
}
Fang (IOException e) {};
}
} |