服务器监听端口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;
// 启动服务
public void start() {
try {
serverSocket = new ServerSocket(8888);
isRunning = true;
usrMap = new ConcurrentHashMap<String, String>();
receive();
} catch (IOException e) {
e.printStackTrace();
System.out.println("服务器启动失败....");
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("客户端错误");
}
}
}
// 停止服务器
public void stop() {
isRunning = false;
try {
this.serverSocket.close();
System.out.println("服务器已停止");
} catch (IOException e) {
e.printStackTrace();
}
}
}