recvfrom获取对端地址

简介: recvfrom获取对端地址

recvfrom获取对端地址


 ret = recvfrom(sock, recvbuf, sizeof(recvbuf), 0, (struct sockaddr *)&cliaddr, &clilen );
        if(ret <0)
       {
            printf("recvfrom err");
        return -1;
       }
        printf("recv client addr : %s  data %s\n",inet_ntoa(cliaddr.sin_addr), recvbuf);
我们可以通过inet_ntoa(client_addr.sin_addr)来获取到客户端ip(点分十进制字符串);
我在使用的时候,每次执行到inet_ntoa时候都会(Segmentation Fault)段错误,当时整个人都斯巴达了;
网上查了下资料发现,inet_ntoa就是这么用啊?????  so???    
sprintf(node->client_addr,"%s",inet_ntoa(client_addr.sin_addr));

坑在这里。。。

使用inet_ntoa必须添加头文件#include <arpa/inet.h>

 

在编译没有开警告的情况下  程序运行到这里就会Segmentation Fault

目录
相关文章
|
7月前
|
网络协议
地址重叠时,用户如何通过NAT访问对端IP网络?
地址重叠时,用户如何通过NAT访问对端IP网络?
|
Linux
将数据包发往10.0.0.0/24网络,并通过eth1网卡发送
如果你想将数据包发往10.0.0.0/24网络,并通过eth1网卡发送,可以按照以下步骤设置路由规则: 1. 使用root用户或具有sudo权限的用户登录到CentOS服务器。 2. 使用以下命令查看当前的路由表: ``` ip route show ``` 3. 使用以下命令添加新的路由规则: ``` sudo ip route add 10.0.0.0/24 dev eth1 ``` 这条命令将设置一个直接路由,将发往10.0.0.0/24网络的数据包发送到eth1网卡上。 4. 使用以下命令验证新的路由规则是否生效: ```
103 0
|
7月前
|
域名解析 网络协议 Linux
TCP/IP协议及配置、IP地址、子网掩码、网关地址、DNS与DHCP介绍
TCP/IP协议及配置、IP地址、子网掩码、网关地址、DNS与DHCP介绍
|
7月前
|
网络架构
IP组播地址
IP组播地址
80 0
|
存储 缓存 网络协议
交换机、IP地址、ARP协议
划分洪泛范围—隔离广播域(收到所有洪泛信息的设备集合) 每一个接口都是一个广播域 转发数据 路由表
122 0
|
缓存 中间件
SOME/IP 报文帧格式是什么
SOME/IP 报文帧格式是什么
SOME/IP 报文帧格式是什么
同一局域网内通过发送广播,同网段IP都能收到信息
广播概述:由一台主机向该主机所在子网内的所有主机发送数据的方式
|
缓存 网络协议
|
网络协议 算法 网络架构
【计算机网络】网络层 : IP 组播 ( IP 数据报传输方式 | 组播 IP 地址 | 组播 MAC 地址 | IGMP 协议 | 组播路由选择协议 )
【计算机网络】网络层 : IP 组播 ( IP 数据报传输方式 | 组播 IP 地址 | 组播 MAC 地址 | IGMP 协议 | 组播路由选择协议 )
400 0
【计算机网络】网络层 : IP 组播 ( IP 数据报传输方式 | 组播 IP 地址 | 组播 MAC 地址 | IGMP 协议 | 组播路由选择协议 )