我需要接受到同一个端口的多个连接。 我在 C++ 中使用套接字,我想做一些像 SSH 那样的事情。 我可以执行 ssh user@machine "ls -lathrR/"并对同一台机器运行另一个命令,即使第一个命令仍在运行。
我该怎么做?
谢谢。
最佳答案
你想要的是一个多线程套接字服务器。
为此,您需要一个主线程来打开一个套接字来监听(并等待传入的客户端连接)。这必须进入某种 while 循环。
然后,当客户端连接到它时,accept()
函数将解除阻塞,此时您需要通过将请求传递给将处理它的线程来处理客户端请求.
服务器端将循环并等待另一个连接,同时前一个线程执行其任务。
您可以根据需要创建线程,或者使用可能更高效的线程池(节省初始化新线程的时间)。
看看here了解更多详情。
在网络上寻找多线程服务器套接字,特别是服务器端的 bind()
、listen()
和 accept()
。
关于c++ - 同一端口套接字上的多个连接 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10723476/