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

标签 c++ multithreading sockets

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

我该怎么做?

谢谢。

最佳答案

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

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

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

服务器端将循环并等待另一个连接,同时前一个线程执行其任务。

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

看看here了解更多详情。 在网络上寻找多线程服务器套接字,特别是服务器端的 bind()listen()accept()

关于c++ - 同一端口套接字上的多个连接 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10723476/

相关文章:

c++ - WSACleanUp 导致异常

c++ - 使用虚拟析构函数,我是否需要为每个子类显式声明一个虚拟析构函数?

java - 多个线程调用@Cacheable 方法。 Spring 缓存(3.2.6)允许所有线程进入方法

multithreading - 线程连接的好处

C#类库如何添加启动代码

c++ - 在 C++ 中使用套接字通过网络发送字符串

c++ - 计算法 vector 的可见性

c++ - C++ 中是否有任何方法允许不同数据类型的不同执行路径?

c++ - OpenGL 3.3 - 2 个三角形的不同旋转

ios - 具有IP地址的iOS Rocket套接字不起作用