#include <arpa/inet.h> int inet_pton(int family,const char * strptr,void * addrptr); 返回:1--成功, 0--输入不是有效的表达格式 , -1--出错 const char * inet_ntop(int family,const void * addrptr,char * strptr,size_t len); 其中len =sizeof(* strptr) 返回: 指向结果的指针--成功 , NULL--出错 程序代码: #include <stdio.h> #include <string.h> #include <sys/types.h> #include <sys/socket.h> #include <sys/ioctl.h> #include <stdlib.h> #include <netdb.h> #include <arpa/inet.h> #include <netinet/in.h> #include <strings.h> int main(int argc,char ** argv) { char dst[100]; int sockfd = socket(AF_INET,SOCK_STREAM,0); struct sockaddr_in serv; memset(&serv,0,sizeof(struct sockaddr_in)); serv.sin_family = AF_INET; serv.sin_port = htons(5555); //serv.sin_addr.s_addr = INADDR_ANY; //以下serv.sin_addr.s_addr可替换为 serv.sin_addr if((inet_pton(AF_INET,"127.0.0.1",&serv.sin_addr.s_addr))==0) printf("inet_pton "); if((inet_ntop(AF_INET,&serv.sin_addr.s_addr,dst,sizeof(dst)))==NULL) printf("inet_ntop "); printf("dst=%s,sizeof(dst)=%d ",dst,sizeof(dst)); bind(sockfd,(struct sockaddr *)&serv,sizeof(serv)); listen(sockfd,15); return 0; }