socket参数详解

深入浅出IP地址 问题:
网络编程接口中一些参数的意义是什么?
socke = (, , 0);
参数详解
int (int , int type, int );
参数意义
套接字中使用的协议族信息
type
套接字数据传输类型信息
设备间通信使用的协议信息
()中参数(协议族)
注意:
【socket参数详解】不同协议中的地址表现形式可能不同,网络编程时地址类型必须和协议类型匹配 。
socke()中type和参数:用于指定协议族中符合类型的具体协议关于端口号和IP地址深入解析IP地址
私有地址:不在公网使用,只在内网使用网络编程中的地址类型
#
函数原型功能描述
(const char* );
将IP字符串转换为符合网络字节序的整数
int (const char* cp,* inp);
将IP字符串转换为符合网络字节序的整数,成功返回1,失败返回0
char* ( );
将符合网络字节序的整数地址转换为字符串形式
示例代码
#include #include #include #include #include #include #include #include int main(void){unsigned int addr = inet_addr("1.2.3.4");struct in_addr addr1 = {0x09080706};struct in_addr addr2 = {0x05040302};//inet_ntoa,每次将转换的结果放在同一空间中,将此空间作为字符串的起始地址返回,所以需进行字符串copychar* s1 = strcpy(malloc(32),inet_ntoa(addr1));char* s2 = strcpy(malloc(32),inet_ntoa(addr2));printf("addr = %x\n",addr);if(inet_aton("1.2.3.1",&addr1))//还可以判读IP地址是否合法{printf("addr1 = %x\n",addr1.s_addr);}printf("addr1 = %x\n",addr1.s_addr);printf("addr2 = %x\n",addr2.s_addr);printf("s1 = %s\n",s1);printf("s2 = %s\n",s2);free(s1);free(s2);return 0;}