如何知道收到的UDP包是广播的还是定点发到我的机器的,实际上就是如何确定接收到包的目的地址?

zhnavy 2002-11-14 12:18:33
如何知道收到的UDP包是广播的还是定点发到我的机器的,实际上就是如何确定接收到包的目的地址?
...全文
110 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
WEIWEI2002 2002-11-15
  • 打赏
  • 举报
回复
//-------------仅提建议-------------------------//
//-------------见笑了-------------------------//
用 recvfrom
int recvfrom(
SOCKET s,
char FAR* buf,
int len,
int flags,
struct sockaddr FAR *from,
int FAR *fromlen
);

The recvfrom function reads incoming data on both connected and unconnected sockets and captures the address from which the data was sent.

能不能根据 from 判断。
zhnavy 2002-11-15
  • 打赏
  • 举报
回复
实际上我不是担心什么,只是想在应用层区分开这两种包,这样我可以分别处理(开两个端口是行的,一个收广播,一个收定点发送的UDP包,但我不想这样)
门吹西风 2002-11-14
  • 打赏
  • 举报
回复
在局域网内,一台主机H1向另一主机H2发送数据,如果数据到达了IP及以上,那么一定是发送到H2的,因为如果不是的话,以太网的数据链路层就不会向上传递,而是丢弃了.你担心的问题是多余的.就想从H1 FTP到H2,那么H3在IP层以上是收不到H1来的数据的,
Kevin_qing 2002-11-14
  • 打赏
  • 举报
回复
除非发送者和接收者有一定的协议规定表明这个包是广播或者p2p。否则没有办法确定。

wj59 2002-11-14
  • 打赏
  • 举报
回复
up
zhnavy 2002-11-14
  • 打赏
  • 举报
回复
问题是我用的是datagram socket编程,没有使用raw socket编程,无法分析包头呀。老哥,有没有不要那么底层的办法?
柏小洋 2002-11-14
  • 打赏
  • 举报
回复
对呀,正如楼上所说,把那些包抓来看看它的目的地址就行了
wuxuan 2002-11-14
  • 打赏
  • 举报
回复
分析IP头中的目的IP信息,如果目的IP为广播地址则说明是广播数据包,如果是你自己的IP地址,则说明是有目的的IP包发送。

18,356

社区成员

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

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