在套接字编程中处理多个客户端的算法是什么?

时间:2012-03-15 13:34:57

标签: c sockets tcp

我正在制作一个用于在套接字编程中处理多个客户端的代码,但我甚至不知道算法。我不知道该怎么办。任何人都可以帮我算法吗? 在此先感谢

4 个答案:

答案 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();
}

服务器等待客户端连接。当客户端连接时,它会将新的连接添加到列表并启动线程来处理与客户端的连接。该项目有三个您应该查看的重要文件:ChatServerChatClientClientConnection。 我希望代码很容易理解。