- IP是Internet Protocol(网络协议)的简写,是为收发网络数据而分配给计算机的值。
- IPv4(Internet Protocol version 4) 4字节地址族
IPv6(Internet Protocol version 6) 16字节地址族
路由器、交换机实际上也是一种计算机,用来完成外网与本网主机之间的数据交换。交换机比路由器功能要简单一些,实际用途差别不大。
端口号就是在同一操作系统内为区分不同套接字而设置的,因此无法将一个端口号分配给不同套接字。端口号由16位组成,可分配的端口号范围是0~65535;TCP和UDP套接字不会共用端口号,所以允许重复。
在通过网络传输数据时约定同一方式,这种约定称为网络字节序(Network Byte Order)非常简单–统一为大端序
大端序,高位字节存放到地位地址
小端序,高位字节存放到高位地址
字节序转换,转换字节序的函数
1、unsigned short htons(unsigned short);
2、unsigned short ntohs(unsigned short);
3、unsigned long htonl(unsigned long);
4、unsigned long ntohl(unsigned long);
5、htons中的h代表主机(host)字节序
6、htons中的n代表(network)字节序
7、s指short,l指long,linux中long类型占用4个字节
8、这句的意思是”把short型数据从主机字节序转化为网络字节序“。函数
inet_addr(const char* string);
1、成功时返回32位大端序整数型值,失败时返回INADDR_NONE。
2、此函数在转换类型的同时进行网络字节序转换。同一计算机中可以分配多个IP地址,实际IP地址的个数与计算机中安装的NIC的数量相等。若只有一个NIC,则直接使用INADDR_ANY