2012-03-15 24 views
0

我正在着手编写一个代码来处理套接字编程中的多个客户端,但是我对即使算法也没有想法。我不知道如何继续。任何人都可以帮助我的算法? 在此先感谢在socket编程中处理多个客户端的算法是什么?

+3

“算法”可能是“多线程”... – 2012-03-15 13:36:01

+0

unix或windows? – 2012-03-15 13:36:22

+0

多线程(pthreads)或多进程(fork)。 – twain249 2012-03-15 13:39:43

回答

0

我会下载Apache代码 - 它实现了这一点,似乎是一个合理的算法。

0

我认为这将是一件好事,通过一个多线程服务器,每个线程监听单个端口或多个端口。

虽然有可能创建一个多进程服务器我仍然推荐使用多线程服务器。原因是在here

+0

首先,无论如何,有一个实际上是_listening_的端口(调用'accept()'的端口)。其次,推荐一个多线程的多进程类似于推荐一个叉子在勺子上,而不是问盘子上有什么。 – bereal 2012-03-15 16:13:26

0

我想也许你应该尝试使用事件驱动模型(如select())或多线程模型。这取决于你打算做什么。

-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,ChatClientClientConnection。 我希望代码很容易理解。