首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >recvfrom卡在一个接口上

recvfrom卡在一个接口上
EN

Stack Overflow用户
提问于 2010-08-17 20:38:36
回答 2查看 1.1K关注 0票数 2

我使用recvfrom从网络接收多播消息。系统上有两个网络接口,recvfrom仅从第一个接口接收数据。当第二个接口工作正常时,recvfrom会被无限期阻塞,并且仅在切换到第一个接口后才会收到数据包。在打开socket.Removing时,在set选项中使用SO_REUSEADDR也无济于事。有什么想法吗?我被卡住了。

EN

回答 2

Stack Overflow用户

发布于 2010-08-17 23:59:43

我会为每个接口创建一个套接字,并显式绑定到该接口,而不是使用INADDR_ANY

使用INADDR_ANY的问题是,一旦你收到一个数据报,套接字可能隐式地绑定到数据报到达的接口,我想它必须是这样的,这样你才能从数据报到达的接口发送响应……

票数 0
EN

Stack Overflow用户

发布于 2010-08-23 21:03:19

每当网络接口发生变化时,我都可以通过在多播套接字上使用DROP_MEMBERSHIP和ADD_MEMBERSHIP来解决这个问题。我还必须更改套接字库,最初它用来返回第一个可用多播接口(即使没有分配IP ),以返回启用了多播并且也分配了IP地址的接口。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3502442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档