?? chatroomserver.java
字號:
package MyChatRoom;
import java.io.*;
import java.net.*;
import java.util.*;
public class ChatRoomServer {
private ServerSocket ss;
private Socket s;
private HashSet hs;
public ChatRoomServer() {
try {
ss = new ServerSocket(1804);
hs = new HashSet();
while(true) {
s = ss.accept();
hs.add(s);
new ServerThread(s).start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
class ServerThread extends Thread {
private Socket s;
private BufferedReader br;
private PrintWriter pw;
public ServerThread(Socket s) {
this.s = s;
try {
br = new BufferedReader(new InputStreamReader(s.getInputStream()));
pw = new PrintWriter(s.getOutputStream());
} catch (IOException e) {
e.printStackTrace();
}
}
public void run() {
while(true) {
String str;
try {
str = br.readLine();
if(str.charAt(0)=='%') {
hs.remove(s);
SendMessageToAllClient(str.split(":")[1]+"離開聊天室("+new Date()+")");
s.close();
break;
}
else{
SendMessageToAllClient(str+"("+new Date()+")");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
public void SendMessageToAllClient(String mesg) {
System.out.println(mesg);
Iterator it = hs.iterator();
while(it.hasNext()) {
Socket temp = (Socket)it.next();
try {
PrintWriter pwTemp = new PrintWriter(temp.getOutputStream());
pwTemp.println(mesg);
pwTemp.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public static void main(String[] args) {
new ChatRoomServer();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -