UDP,双网卡,组播发送问题?(应该简单)

xh7907 2005-12-16 08:09:04
协议:UDP
类:CSocket
发送方法:SendTo
机器上有两块网卡,IP地址不同,但在一个子网内,程序中建立了两个发送套接字和两个接收套接字,每个IP各绑定一个接收和一个发送套接字.两个网卡在组播接收时是正常的,但在发送时,两个套接字数据是发送了,可其中一个并没有从绑定的网卡上发送(我是在Create时设置的IP地址,没有使用bind).
在没有改变程序的条件下,修改了两块网卡的子网掩码,设置到不同的子网上,发送就正常了.
这是为什么?
在同一子网内如何从各自绑定的网卡上发送??
...全文
960 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xh7907 2006-01-13
  • 打赏
  • 举报
回复
看来问题是我自己解决的,
方法简单:
unsigned long addr = inet_addr("157.57.8.1");
setsockopt(sock, IPPROTO_IP, IP_MULTICAST_IF,
(char *)&addr, sizeof(addr));
对于本机多个网卡的情况,就叫多播吧(概念不一定正确哦),
当多个网卡设置到同一个子网内时,仅绑定套接字是不够的,
需要明确指定套接字多播地址,如上,指定IP为157.57.8.1的网卡
发送sock的数据.
alexmayer 2005-12-17
  • 打赏
  • 举报
回复
帮顶混分!
nuaawenlin 2005-12-17
  • 打赏
  • 举报
回复
要指定是那块网卡发送
loveliu0429 2005-12-16
  • 打赏
  • 举报
回复
关注中,一直以为必须设在不同子网呢
xh7907 2005-12-16
  • 打赏
  • 举报
回复
是不是要这样呀?

unsigned long addr = inet_addr("157.57.8.1");
setsockopt(sock, IPPROTO_IP, IP_MULTICAST_IF,
(char *)&addr, sizeof(addr))
xh7907 2005-12-16
  • 打赏
  • 举报
回复
没人理我
xh7907 2005-12-16
  • 打赏
  • 举报
回复
这个问题可能和
http://community.csdn.net/Expert/topic/4162/4162692.xml?temp=.2051355
是一个问题,但回答的都不正确

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧