免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: hjzgq
打印 上一主题 下一主题

多线程, 文件描述符能否共用 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2014-01-08 14:50 |只看该作者
这帖子恰合我需!我开了10个线程,对每个线程都创建了一个sock,这10个sock都bind在一个ip上,然后,每个线程分别对10个ip地址发icmp报文,结果程序里面出现了,原本ping不通的ip的线程也能收到icmp应答报文,解析一看,报文的源ip是其他线程要ping的ip。这是否就是说,由于bind在同一个地址上,这10个sock所对应的收发缓冲区指向的是一个地方,从而导致了,只要一个sock上有变化,其他9个都知道了,都是select返回大于0,都去收发缓冲区来执行recvfrom获取报文,最后就出现了“原本ping不同的ip的线程也能收到icmp应答报文”的问题。各位大神,可以这么解释吗?

论坛徽章:
0
12 [报告]
发表于 2014-01-08 16:05 |只看该作者
弱弱地问一句:select里面所说的“文件描述符状态发生改变”,这个“文件描述符状态”是什么?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP