bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr)); 二、inet_addr、 inet_aton、inet_ntoa inet_addr: 将网络地址转为网络二进制数字,返回的IP地址是网络序的。函数原型: unsigned long in inet_addr(const char *cp) inet_aton:将网络地址转为网络二进制数字,与inet_addr的区别是,结...
struct sockaddr是通用的套接字地址,而struct sockaddr_in则是internet环境下套接字的地址形式,二者长度一样,都是16个字节。二者是并列结构,指向sockaddr_in结构的指针也可以指向sockaddr。一般情况下,需要把sockaddr_in结构强制转换成sockaddr结构再传入系统调用函数中。 下面是struct sockaddr_in中用到两个数据类型,具体...
struct sockaddr 和 struct sockaddr_in 这两个结构体用来处理网络通信的地址。 //以下是 IPv4 的定义structsockaddr { unsignedshortsa_family;//2 bytes address family, AF_xxxcharsa_data[14];//14 bytes of protocol address};structsockaddr_in {shortsin_family;//2 bytes e.g. AF_INET, AF_INET6un...
struct sockaddr是通用的套接字地址,而struct sockaddr_in则是internet环境下套接字的地址形式,二者长度一样,都是16个字节。二者是并列结构,指向sockaddr_in结构的指针也可以指向sockaddr。一般情况下,需要把sockaddr_in结构强制转换成sockaddr结构再传入系统调用函数中。 下面是struct sockaddr_in中用到两个数据类型,具体...
struct sockaddr与struct sockaddr_in struct sockaddr { unsigned short sa_family; /* address family, AF_xxx */ char sa_data[14]; /* 14 bytes of protocol address */ };sa_family是地址家族,一般都是“AF_xxx”的形式。好像通常大多用的是...
struct sockaddr_storage sas;int sz = sizeof(sas);accept(s, (struct sockaddr*)&sas, &sz);if(addr->sa_family == AF_INET){ //ipv4 struct sockaddr_in* sin = (struct sockaddr_in*)addr;//端口addr->sin_port //地址addr->sin_addr //转换为字符串inet_ntop()} else if(addr...
struct sockaddr_in { //通信地址类型 short int sin_family; //端口号 in_port_t sin_port; //ip地址 struct in_addr sin_addr; } 准备好的通信地址通常要将其强制转换成基本通信地址才能传给函数使用。 int bind(int sockfd, const struct sockaddr *addr,socklen_t addrlen); ...
A. inet_aton(“202.113.16.10”,&adr_inet.sin_addr.s_addr); B. adr_inet.sin_addr=inet_aton(“202.113.16.10”); C. adr_inet.sin_addr.s_addr=inet_addr(“202.113.16.10”); D. adr_inet.sin_addr=inet_addr(“202.113.16.10”); ...
struct sockaddr_in是已经声明了的结构名,这里当作类型名来使用,如基础类型名int,double等等,addr被声明为struct sockaddr_in类型的变量,就像int a;中的a一样。
1.一个string类型的字段name,用来保存用户名称这个属性 2.一个int类型的字段ag