当前位置: 首页 > 面试题库 >

获取接收到的UDP报文的目的地址

屠昌胤
2023-03-14
问题内容

收到UDP数据包后,我需要用他用来向其发送数据包的地址来响应发送方。

recvfrom调用使我可以获取发送方的地址,但是如何获取接收到的数据包的目标地址,该地址应与本地主机接口之一的地址匹配?


问题答案:

您可以使用setsockopt设置IP_PKTINFO选项,然后使用recvmsg并在struct
msghdr的msg_control成员中获得in_pktinfo结构。in_pktinfo有一个包含数据包目的地址的字段。

参见:http :
//www.linuxquestions.org/questions/programming-9/how-to-get-destination-
address-of-udp-
packet-600103/
,在这里我找到了答案以获取更多详细信息。



 类似资料:
  • 我有一个非常奇怪的问题。我找不到服务器接收数据的客户端的IP地址。下面是我的UDP侦听器类。 IPPacketInformation不包含IP。我在EndReceiveMessageFrom中引用的clientEndPoint两者都没有。 当我 我得到服务器的 IP 地址。我将服务器托管在自己的计算机上,因此我获得了自己的IP地址。当我尝试访问clientEndPoint.remoteEndPoi

  • 问题内容: 我的问题:使用net.Read …方法仅复制给定字节数组或切片大小的字节数。我当然不想每次分配64 kB的最大UDP数据报。 有没有一种确定数据报大小(在数据报标头中)或再次读取直到数据报被完全读取的方法? 问题答案: 尝试ReadFromUDP: ReadFromUDP从c读取UDP数据包,并将有效负载复制到b。它返回复制到b中的字节数以及该数据包上的返回地址。 数据包的大小应该从中

  • 我正在尝试使用Boost::asio进行简单的UDP客户端/服务器测试。我已经阅读了留档和官方教程,但我仍然无法正确使用。 我的问题特别是在客户端。下面是我希望客户端做的:它必须向运行在的服务器发送一个简单的数据报,然后侦听服务器发送的响应数据报。但这不是我得到的。看起来客户端正在发送数据报,但是在收到自己的数据报之后!在有人问“不”之前,服务器没有运行:-) 函数< code>send_data

  • 本文向大家介绍python UDP(udp)协议发送和接收的实例,包括了python UDP(udp)协议发送和接收的实例的使用技巧和注意事项,需要的朋友参考一下 需要建立2个文件,一个作为客户端,一个作为服务端 文件一 作为客户端client,文件二作为服务端server udp的特点是不需要建立连接 文件一客户端 文件二服务端 注意:先运行文件二在运行文件一 以上这篇python UDP(ud

  • 问题内容: 我想以编程方式访问将包含在我的项目文件夹中的特定文件。有没有办法做到这一点?如果是这样,我将文件放在项目文件夹中的什么位置,获取文件路径的一些简单代码是什么? 问题答案: 将文件放在项目的根文件夹中。然后获取文件URL,路径和其他详细信息,如下所示: 编辑: 替代方法(如果文件在您的类路径中,例如,将文件放在“ src”文件夹中,并确保编译后将其移入“ bin”或“ classes”文

  • 问题内容: 如何从C代码获取Linux上接口的IPv4地址? 例如,我想获取分配给eth0的IP地址(如果有)。 问题答案: 尝试这个: 代码示例是从这里获取的。