您的位置:网站首页 > 常用技巧
常用技巧
socket通信中 ,服务器如何获取连接的客户端的主机名
作者: 日期:2012-1-11 13:25:05 人气: 标签:服务器 主机 连接
第一个参数是连接的数据流套接口文件描述符。第二个参数是指向包含另一端的信息的数据结构sockaddr的指针。第三个参数可以设置为sizeof(structsockaddr)。

这个系统的调用十分简单。它将告诉你是谁在连接的另一端:
#include
int getpeername(int sockfd,struct sockaddr* addr,int* addrlen);
第一个参数是连接的数据流套接口文件描述符。
第二个参数是指向包含另一端的信息的数据结构sockaddr的指针。
第三个参数可以设置为sizeof(structsockaddr)。
如果出错,系统调用将返回-1。
一旦你获得了它们的地址,你可以使用inet_ntoa()或者gethostbyaddr()来得到更多的信息。

[目录]

gethostname()


系统调用gethostname()比系统调用getpeername()还简单。它返回程序正在运行的计算机的名字。系统调用gethostbyname()可以使用这个名字来决定你的机器的IP地址。
下面是一个例子:
#include
int gethostname(char*hostname,size_tsize);
如果成功,gethostname将返回0。如果失败,它将返回-1。

上一篇:没有了
下一篇:没有了
共有条评论信息评论信息
栏目分类
版权所有:电脑技术网 当前风格:清爽绿色
Powered By SDCMS 1.1 SP1