UDP 不同IP,同一端口 可否单播

zz997788 2013-01-03 11:20:32
现在,上位机与两个下位机(单片机)用UDP通讯
两单片机的IP地址分别是192.168.2.1 192.168.2.2 端口都是56
上位机用 IdUDPServer1 发命令
 TBytes comm; 
bt.set_length(2);
bt[0]=0xf0; bt[1]=0x02;
IdUDPServer1->SendBuffer(“192.168.2.1”,56,comm);

可是返回时,两个单片机的数据都会返回给上位机
把上面改成发给192.168.2.2 同样也是两个单片机的数据都会返回。

如果把两个的端口号设成不同,就可以实现单播

但项目中的下位机有可能会有上百个,且要一一赋值不同的端口号,也不便管理,
请问有没有好的方法在UDP中实现单播

...全文
1350 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
zz997788 2013-01-19
  • 打赏
  • 举报
回复
终于确定了,不是软件的问题,单片机里有个设置没设好引起的。
wzj_2008 2013-01-18
  • 打赏
  • 举报
回复
应该是单片机那边的问题,你应与硬件工程师联系
jne888 2013-01-09
  • 打赏
  • 举报
回复
不同机器有不同IP,相同Port没问题,我也是用的UDP,连接50台机器
zz997788 2013-01-06
  • 打赏
  • 举报
回复
引用 9 楼 draculamx 的回复:
查一查你的“子网掩码”是多少?如果是“”的话,是不会广播的哟。。。
设的子网掩码 是 255.255.255.0
zz997788 2013-01-06
  • 打赏
  • 举报
回复
引用 8 楼 songhtao 的回复:
可能设成组播的方式了吧 ?
怎么样设组播的方式?
draculamx 2013-01-05
  • 打赏
  • 举报
回复
查一查你的“子网掩码”是多少?如果是“255.255.255.0”的话,是不会广播的哟。。。
我不懂电脑 2013-01-04
  • 打赏
  • 举报
回复
可能设成组播的方式了吧 ?
zz997788 2013-01-04
  • 打赏
  • 举报
回复
引用 6 楼 My_Love 的回复:
“192.168.2.1”可能被解释成"0.0.0.0" 用"192.168.2.1"试试?
什么意思?你是说要我用192.168.2.2 试吗?那个我也试了,也一样的返回了两个IP的数据 但我写其他不存在的IP试,比如192.168.2.5, 就没有数据发上来
My_Love 2013-01-04
  • 打赏
  • 举报
回复
“192.168.2.1”可能被解释成"0.0.0.0" 用"192.168.2.1"试试?
银点 2013-01-03
  • 打赏
  • 举报
回复
你又没有做成组播或是广播,怎么会每个都收到你的数据呢
银点 2013-01-03
  • 打赏
  • 举报
回复
不同机器用同一端口没有问题啊
zz997788 2013-01-03
  • 打赏
  • 举报
回复
我还试了,两下位机在TCP模式下,同一端口是可以实现单播的
zz997788 2013-01-03
  • 打赏
  • 举报
回复
上面代码贴错了,但意思是一样的
TBytes comm;    
 comm.set_length(2); 
 comm[0]=0xf0;   
 comm[1]=0x02; 
 IdUDPServer1->SendBuffer(“192.168.2.1”,56,comm);
zz997788 2013-01-03
  • 打赏
  • 举报
回复
是呀,我就是奇怪,为什么每个IP都收到了我的命令,并且都返回上来了数据

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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