同一端口套接字C++上的多个连接

Lef*_*ler 5 c++ sockets multithreading

我需要接受到同一端口的多个连接.我在C++中使用套接字,我想做像SSH这样的事情.我可以做一个ssh user @ machine"ls -lathrR /"并对同一台机器运行另一个命令,即使第一个仍在运行.

我怎样才能做到这一点?

谢谢.

fdu*_*uff 10

你想要的是一个多线程套接字服务器.

为此,您需要一个主线程打开一个套接字来监听(并等待传入​​的客户端连接).这必须进入某种类型的while循环.

然后,当客户端连接到它时,该accept()函数将解除阻塞,此时您需要通过将请求传递给将处理它的线程来提供客户端请求.

服务器端将循环返回并等待另一个连接,而前一个线程继续执行其任务.

您可以根据需要创建线程,也可以使用可能更高效的线程池(节省初始化新线程的时间).

看看这里了解更多细节.寻找多线程服务器套接字在网络上,具体bind(),listen()accept()从服务器端.

  • @November,如果用线程表示将处理连接数据的函数,则`accept()`进入主线程.在`accept()`调用之后,您可以启动新线程来处理该特定连接.请参阅http://en.wikipedia.org/wiki/Berkeley_sockets#Client-server_example_using_TCP. (3认同)