packageserver;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.OutputStream;importjava.net.Socket;importjava.util.Set;...
package server;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Set;
public class Chater implements Runnable {
private Socket socket;
private Set chatroom;
public Chater(Socket socket,Set chatroom){
this.socket=socket;
this.chatroom=chatroom;
}
public void talk(String line){
try {
OutputStream out=socket.getOutputStream();
out.write((line+"\n").getBytes());
out.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void run() {
OutputStream out=null;
try {
out = socket.getOutputStream();
BufferedReader reader=
new BufferedReader(new InputStreamReader(socket.getInputStream()));
out.write("I am server服务!!!\n".getBytes());
while(true){
String line=reader.readLine();
System.out.println(line);
String lns[]=line.split("@");
if(lns[0].equals("logout")){
//在聊天室中群发退出的信息
for(Chater c:chatroom){
c.talk(line);
}
chatroom.remove(this);
break;
}
else if(lns[0].equals("login")){
//在聊天室中群发退出的信息
for(Chater c:chatroom){
c.talk(line);
}
}
out.flush();
}
} catch (IOException e) {
e.printStackTrace();
}
finally{
try {
out.close();
socket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
展开