服務(wù)器監(jiān)聽端口8888
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
public class Server {
private ServerSocket serverSocket;
private boolean isRunning;
private Map<String, String> usrMap;
// 啟動服務(wù)
public void start() {
try {
serverSocket = new ServerSocket(8888);
isRunning = true;
usrMap = new ConcurrentHashMap<String, String>();
receive();
} catch (IOException e) {
e.printStackTrace();
System.out.println("服務(wù)器啟動失敗....");
stop();
}
}
// 接受連接處理
public void receive() {
while (isRunning) {
try {
Socket client = serverSocket.accept();
System.out.println("一個客戶端建立了連接....");
// 多線程處理
new Thread(new Dispatcher(client, usrMap)).start();
} catch (IOException e) {
e.printStackTrace();
System.out.println("客戶端錯誤");
}
}
}
// 停止服務(wù)器
public void stop() {
isRunning = false;
try {
this.serverSocket.close();
System.out.println("服務(wù)器已停止");
} catch (IOException e) {
e.printStackTrace();
}
}
}