gpt4 book ai didi

linux - 如何同时接受 TCP 连接 in many threads?

转载 作者:太空宇宙 更新时间:2023-11-04 12:24:59 25 4
gpt4 key购买 nike

如何在 Linux(内核 3.16)上的一个进程的多个线程中接受同一 ip:port 上的 TCP 连接?

我可以为每个线程使用一个套接字接受器吗(即 4 个线程中的 4 个套接字接受器)?

即每个线程都有自己的具有相同 ip_addr:port 的接受器套接字,而不是为所有线程共享一个接受器套接字。

我应该为此使用 SO_REUSEPORTSO_REUSEADDR 吗?

最佳答案

我在编写服务器时做了完全相同的事情。您有一个 main 方法,它接受到机器的传入连接,以及处理每个连接的线程。每次有新机器连接到服务器时,都会创建一个新的连接对象。在您的 main 方法中,您必须为每个连接生成一个新线程,并将该连接对象作为参数传递给该线程。例如这里有一个抽象:

void acceptConnections()
{
while(true)
{
connection = socket.accept()
createNewThread(threadMethod, connection)
}
}

在您生成的线程中,您可以像往常一样从连接对象接收数据。如果不知道您使用的是哪种语言,我无法提供更多详细信息

关于linux - 如何同时接受 TCP 连接 <ip :port> in many threads?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44999244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com