码迷,mamicode.com
首页 > 其他好文 > 详细

服务器和客户端信息获取

时间:2015-02-21 21:13:42      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:linux c   网络编程   

服务器和客户端信息获取


字节序转换:

#include<arpa/inet.h>

uint32_t htonl(uint32_t hostlong);

uint16_t htons(uint16_t hostshort);

uint32_t ntohl(uint32_t netlong);

uint16_t ntohs(tint16_t netshort);


字符串IP地址和二进制IP地址转换:


#include<sys/scoket.h>


#include<netinet/in.h>


#include<arpa/inet.h>


int inet_aton(const char *cp,struct in_addr *inp); //四段式到in_addr


in_addr_t inet_addr(const char *cp); //将字符串转换为in_addr


in_addr_t inet_network(const char *cp);将字符串地址的网络部分转为in_addr




char *inet_ntoa(struct in_addr in); //将in_addr结构地址转为字符串


struct in_addr inet_makeaddr(int net,int host); //将网络地址和主机地址合成ip地址




in_addr_t inet_lnaof(struct in_addr in); //获得地址的主机部分


in_addr_t inet_netof(struct in_addr in); //获得地址的网络部分



判断是否合法的套接字描述符:


int issockettype(int fd)


{


struct stat st;


int err=fstat(fd,&st);


if(err<0)


return -1;


if((st.st_mode&S_IFMT)==S_IFSOCK){


return 1;


}else


{


return 0;


}


}


获取主机信息函数:

gethostbyname()函数:#include<netdb.h>

原型:struct hostent *gethostbyname(const char *name);

当返回值为NULL时,错误类型可由errno获得

HOST_NOT_FOUND

查不到相关主机

NO_ADDRESS和NO_DATA

名称合法但没有合适的IP

NO_RECOVERY

域名服务器不响应

TRY_AGAIN

域名服务器当前出现临时性错误,稍后再试


struct hostent结构:

struct hostent {

char *h_name; //主机的正式名称

char **h_aliases; //别名列表

int h_addrtype; //主机地址类型

int h_length; //地址长度

char **h_addr_list; //地址列表,以NULL结尾

}



gethostbyaddr()函数

struct hostent *gethostbyaddr(const void *addr,int len,int type);

type在ipv4的情况下为AF_INET



协议名称处理函数:

#include<netdb.h>

struct protoent *getprotoent(void); //从协议文件中读一行

struct protoent *getprotobyname(const char *name); //从协议文件中找到匹配的行

struct protoent *getprotobynumber(int proto); //按照协议类型的值获取匹配项

void setprotoent(int stayopen); //设置协议文件打开的状态

void endprotoent(void); //关闭协议文件


本文出自http://qianyang.blog.51cto.com/,转载请务必注明出处

服务器和客户端信息获取

标签:linux c   网络编程   

原文地址:http://qianyang.blog.51cto.com/7130735/1614912

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!