主机字节序和网络字节序
主机字节序分为大端字节序和小段字节序,不同的主机采用的字节序列可能不同。大端字节序是指一个整数的高位字节存储在内存的低地址处,低位字节存储在内存的高地址处。小段字节序是指整数的高位字节存储在内存的高地址处,而低位字节则存储在内存的低地址处。在两台使用不用字节序的主机之间传递数据时,可能会出现冲突。所以,在将数据发送到网络时规定整形数据使用大端字节序,所以也把大端字节序称为网络字节序列。对方接收到数据后,可根据自己的字节进行转换。
1 | 这是Linux系统提供的4个函数来完成转换 |
socket地址结构
通用的socket地址结构
socket网路编程接口中表示socket地址的是结构体sockaddr,如下
1 |
|
常用的协议族和对应的地址族如下图
专用的socket地址结构
TCP/IP协议族有sockaddr_in和sockaddr_in6两个专用的socket地址结构体,分别位于IPV4和IPV6:
1 |
|
什么是端口号?
网络通信实际上是运行在两个不同终端上的进程之间的通信。
在网络中通过IP地址可以标识一个主机
运行在主机上的进程是通过端口号来标识的。
专用的socket地址结构中,IP地址是一个4字节的整型值,一般是使用点分十进制的的字符串来标识IP地址的,如何将点分十进制的IP地址转化为4字节的整型值。
4个字符串化成整型也就在0~255之间,直接采用整型变量存。
1 |
|
撒花完结。。。