基于socket服务端、客户端的调用使用情况,我们在做项目中经常会遇到,这里基于一个示例和大家做一个分享和学习。
1.socket服务端定义
public class ServerHandler implements ClientCommandHandler, ClientEventHandler {
public static HashMap<String, ClientHandler> ConnectPool = new HashMap<String, ClientHandler>();
ServerMsgLogicDao dao = new ServerMsgLogicDao();
public ServerHandler() {
}
public void gotConnected(ClientHandler handler) throws SocketTimeoutException, IOException {
handler.setDataMode(DataMode.STRING, DataType.IN);
handler.setDataMode(DataMode.STRING, DataType.OUT);
String ip = handler.getHostAddress();
System.out.println("::socket::获得一个连接,IP地址:" + ip);
if (ConnectPool.get(ip) != null) {
// 如果来自同一个ip,比如本机开多个客户端连接,后面加个唯一串区别
ConnectPool.put(ip + "-" + java.util.UUID.randomUUID(), handler);
} else {
ConnectPool.put(ip, handler);
}
}
public