67,514
社区成员
发帖
与我相关
我的任务
分享
public class Chat extends Thread {
private Socket socket;
public Chat(int count, Socket socket, List<Socket> socketList) {
this.socket = socket;
}
public void run() {
BufferedReader reader = null;
PrintWriter writer = null;
try {
reader = new BufferedReader(new InputStreamReader(
socket.getInputStream()));
String message = "";
SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");
//socket.setSoTimeout(10000);
while (true) {
message = reader.readLine(); ========此处为41行=======
// 接收到客户端的bye信息,客户端即将退出,并将bye写入到该客户端
if (null==message) {
SocketTest3Server.count--;
System.out.println( SocketTest3Server.count+ " null下线 " );
SocketTest3Server.socketList.remove(socket);
//new Chat(count, socket, socketList).run();
break;
}
// 向所有的客户端发送接收到信息,实现群聊
for (int i = 0; i < SocketTest3Server.socketList.size(); i++) {
writer = new PrintWriter(SocketTest3Server.socketList.get(i).getOutputStream());
String username=message.substring(0,message.indexOf("#$*"));
String messages=message.substring(message.indexOf("#$*")+3,message.length());
messages=SensitiveUtils.doFilter(messages);
writer.println("{\"talk\":{\"username\":\""+username +"\",\"time\":\""+df.format(new Date())+ "\",\"message\":\"" + messages+"\"},\"image\":[]}");
//System.out.println("{\"talk\":{\"username\":\""+username +"\",\"time\":\""+df.format(new Date())+ "\",\"message\":\"" + messages+"\"},\"image\":[]}");
writer.flush();
}
}
} catch (Exception e) {
SocketTest3Server.count--;
System.out.println( SocketTest3Server.count+ " Exception下线 " );
SocketTest3Server.socketList.remove(socket);
//new Chat(SocketTest3Server.count, socket, SocketTest3Server.socketList).run();
e.printStackTrace();
}
}
}