linux获取udp报文的ip和 端口,linux udp 套接字编程获取源地址和目的地址(一)

通过设置套接字的选项(IP_PKTINFO) 来获取收到报文的源地址和目的地址。

这里使用的是调用的是recvmsg接口,实际上一个还有更简单的接口recvfrom接口也能够满足要求,可以参考这篇博客。

https://blog.csdn.net/fuyuande/article/details/80588453

代码如下:

/*

* Description : UDP套接字编程获取源地址和目的地址

* Date : 20180527

*/

#include #include #include #include #include #include #include #include #include #include #include #include #include "udptest.h"

void main() {

int on = 1;

int ret, fd, addr_len, recv_len;

char buffer[512] = {0}; /* 接收缓存 */

struct msghdr msg;

struct iovec iov[1];

struct sockaddr_in saddr; /* src */

struct sockaddr_in daddr; /* dst */

struct cmsghdr *cmhp;

struct sockaddr_in server_addr;

struct in_pktinfo *pktinfo = NULL; /* 用于指向获取的本地地址信息 */

char buff[CMSG_SPACE(sizeof(struct in_pktinfo) + CMSG_SPACE(sizeo

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值