当前位置: 技术问答>linux和unix
IP地址怎么处理?
来源: 互联网 发布时间:2017-03-04
本文导语: UDP服务器,每次只能发一次消息给客户端,然后等客户端sendto之后才能通过recvfrom得到客户端的IP,之后再sendto,有没有办法保存客户端的IP? | 使用会话的概念,为每个和你通迅过的IP以某种...
UDP服务器,每次只能发一次消息给客户端,然后等客户端sendto之后才能通过recvfrom得到客户端的IP,之后再sendto,有没有办法保存客户端的IP?
|
使用会话的概念,为每个和你通迅过的IP以某种关键字(比如用户ID)记录到内存中,当需要和某人进行下次通迅时,根据关键字找到IP,然后sendto
|
得到一次IP后,将IP存入一个字符数组中,再次 sendto 时读取。
使用时应该要转换地址格式,不过没试过。。。。
使用时应该要转换地址格式,不过没试过。。。。
|
函数 inet_ntop 将网络字节序的二进制地址转换成文本字符串格式
inet_pton将文本字符串格式转换成网络字节序的二进制地址。
详细用法 man 手册看看
inet_pton将文本字符串格式转换成网络字节序的二进制地址。
详细用法 man 手册看看
|
下面是我在01年的帖子中找的
阻塞?哪里阻塞,什么函数?
/*在服务器端取客户端IP地址
*struct sockaddr_in中的sin_addr.s_addr存放Client端的IP地址。
*/以下示例显示Client端的IP地址。
struct sockaddr_in sin;
char *ptr,ClientIP[20];
//在accept执行后
ptr=(unsigned char *)&(sin.sin_addr.s_addr);
sprintf(ClientIP, "%u.%u.%u.%u ",ptr[0],ptr[1],ptr[2],ptr[3]);
阻塞?哪里阻塞,什么函数?