import java.io.*;
de invoer java.net. *;
openbare klassenServer {
de statische Contactdoos clientSocket = verklaart nietig;
statische ServerSocket serverSocket = verklaart nietig;
// Deze praatjeserver de verbindingen van tot 10 cliënten kan goedkeuren
statische clientThread t [] = nieuwe clientThread [10];
openbare statische nietige leiding (Koord args []) {
// de standaardhaven
int. port_number=2222;
als (args.length < 1)
{
System.out.println („Gebruik: Java MultiThreadChatServer \ n " +
„Nu gebruikend haven number= " +port_number);
} anders {
port_number=Integer.valueOf (args [0]) .intValue ();
}
probeer {
serverSocket = nieuwe ServerSocket (port_number);
}
vangst (IOException e)
{System.out.println (e);}
terwijl (waar) {
probeer {
clientSocket = serverSocket.accept ();
voor (int. i=0; i<=9; i++) {
als (t [I] ==null)
{
(t [I] = nieuwe clientThread (clientSocket, t)).start ();
onderbreking;
}
}
}
vangst (IOException e) {
System.out.println (e);}
}
}
}
de klasse clientThread breidt Draad uit {
DataInputStream is = nietig verklaart;
PrintStream os = verklaart nietig;
De contactdoos clientSocket = verklaart nietig;
clientThread t [];
openbare clientThread (Contactdoos clientSocket, clientThread [] t) {
this.clientSocket=clientSocket;
this.t=t;
}
openbare nietige looppas ()
{
De lijn van het koord;
De naam van het koord;
probeer {
is = nieuwe DataInputStream (clientSocket.getInputStream ());
os = nieuwe PrintStream (clientSocket.getOutputStream ());
os.println („ga uw naam in. “);
naam = is.readLine ();
os.println („Hello „+name+“ aan onze praatjeruimte. \ niet gaat het verlof /quit in een nieuwe lijn in“);
voor (int. i=0; i<=9; i++)
als (t [I]! =null && t [I]! =this)
t [I] .os.println („*** ging A nieuwe gebruiker „+name+“ de praatjeruimte in!!! ***“);
terwijl (waar) {
lijn = is.readLine ();
als (line.startsWith („/quit“)) onderbreking;
voor (int. i=0; i<=9; i++)
als (t [I]! =null) t [I] .os.println („< " +name+ " > „+line);
}
voor (int. i=0; i<=9; i++)
als (t [I]! =null && t [I]! =this)
t [I] .os.println („*** de gebruiker „+name+“ verlaat de praatjeruimte!!! ***“);
os.println („*** tot ziens „+name+“ ***“);
voor (int. i=0; i<=9; i++)
als (t [I] ==this) t [I] =null;
is.close ();
os.close ();
clientSocket.close ();
}
vangst (IOException e) {};
}
} |