我正在制作一个用于在套接字编程中处理多个客户端的代码,但我甚至不知道算法。我不知道该怎么办。任何人都可以帮我算法吗? 在此先感谢
答案 0 :(得分:0)
我认为这样做的好处是拥有一个多线程服务器,每个线程监听单个端口或多个端口。
虽然有可能创建一个多进程服务器,但我仍然建议使用多线程服务器。原因在here
答案 1 :(得分:0)
我想也许您应该尝试使用事件驱动模型(如select())或多线程模型。这取决于你打算做什么。
答案 2 :(得分:0)
我会下载Apache代码 - 它实现了这一点,似乎是一个合理的算法。
答案 3 :(得分:-1)
我用Java写过一次简单的聊天。你可以在这里查看来源: github.com/Samuirai/Java
基本设计如下:
ServerSocket serverSocket = new ServerSocket(4444);
System.out.println("Server started");
while (true) {
Socket client = serverSocket.accept();
System.out.println("Client connected");
ClientConnection conn = new ClientConnection(client, this);
this.connections.add(conn);
new Thread(conn).start();
}
服务器等待客户端连接。当客户端连接时,它会将新的连接添加到列表并启动线程来处理与客户端的连接。该项目有三个您应该查看的重要文件:ChatServer,ChatClient和ClientConnection。 我希望代码很容易理解。