能否区分收到的一个UDP数据包是不是广播过来的

kingyo 2018-04-12 04:47:50
我有一个程序,在某个电脑的指定的端口接收UDP数据包,这些数据包可能是专门往这个电脑的端口发的(不妨称为点对点发送),也有可能是通过广播发到这个端口的。请问,采用socket编程接收数据时,有没有办法区分这两种情况?
...全文
1133 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_41756238 2020-01-15
  • 打赏
  • 举报
回复
可以自己在广播数据包的数据内加入一些自定义的标志字节,以表示此数据为广播数据
worldy 2018-04-23
  • 打赏
  • 举报
回复
int recvfrom ( SOCKET s, char FAR* buf, int len, int flags, struct sockaddr FAR* from, int FAR* fromlen ); 在from参数,可以得到发送者的地址
汪宁宇 2018-04-23
  • 打赏
  • 举报
回复
在RING3 API上面是没办法区分是广播包,还是普通一对一发的
mdcire 2018-04-19
  • 打赏
  • 举报
回复
广播UDP与单播UDP的区别就是IP地址不同,广播使用广播地址255.255.255.255,将消息发送到在同一广播网络上的每个主机。看目的IP地址
kingyo 2018-04-17
  • 打赏
  • 举报
回复
引用 3 楼 lbm2018 的回复:
检查udp包的来源地址即可
来源不是只能知道对方是谁,还能区分对方是否以广播形式发出?能再详细点吗?
lbm2018 2018-04-14
  • 打赏
  • 举报
回复
检查udp包的来源地址即可
worldy 2018-04-13
  • 打赏
  • 举报
回复
IP层检查接收方的IP,看看是否是广播地址
千寻港生惠香 2018-04-12
  • 打赏
  • 举报
回复
不太清楚。我们项目上发数据都使用带包头的数据包,包头可以自定义一些信息。

18,356

社区成员

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

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