gpt4 book ai didi

c - C中的linux套接字和多线程

转载 作者:太空狗 更新时间:2023-10-29 15:41:28 25 4
gpt4 key购买 nike

我想创建一个在 linux 下运行的进程,它创建多个线程,每个线程通过 UDP 套接字连接将自己的数据写到接收进程。对于大小调整,假设我需要有多达 100 个这样的线程同时运行,并且线程来来去去。

是让每个线程在创建线程时使用相同的 UDP 端口号打开它自己的套接字到相同的目的地更好(因此需要 100 个单独的文件描述符)还是在主线程中打开一次套接字并且将该文件描述符传递给每个线程,以便每个线程都使用相同的套接字?每个线程每秒将生成大约 20 个数据包,每个数据包的长度大约为 800 字节。线程之间没有同步。

最佳答案

我认为使用多个套接字不会提高速度,除非可能在多宿主机器上。物理网络层不能同时发送两个数据包。不过,我会有点担心在没有同步的情况下使用单个套接字。我认为它应该是线程安全的,但一些谷歌搜索似乎表明存在潜在问题。如果我对它进行编码,我可能会围绕它进行同步,因为数据包在线路上的底层放置最终将被序列化。

关于c - C中的linux套接字和多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2021945/

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