1 套接字
1.1 什么是socket(译文:插座)
- socket是一种特殊的文件描述符 可以使用linux文件IO操作函数来操作socket
- socket是一个独立于具体协议的网络编程接口用来连接位于用一个主机或不同主机的进程,从而实现进程通信或网络通信: 网络通信本质也是不同主机进程之间通信,
- socket是位于应用层和传输层之间一个抽象层。他把TCP/IP复杂的操作抽象为几个简单的接口,供应用层调用
1.2特点
- 一个文件描述符指向一个套接字(该套接字由内核借助两个缓冲区实现的)
- socket成对出现
2字节序转换操作(S基本用来转端口号)
2.1大小端
- 小端法:高位存高地址 低位存低地址-》pc本地存储
- 大端法:低位存高地址 低位存高地址-》网络存储
2.2 网络序转主机序
No. |
函数 |
含义 |
作用 |
1 |
ntohs() |
network to host short |
把unsigned short类型从网络序转换到主机序 |
2 |
ntohl() |
network to host long |
把unsigned long类型从网络序转换到主机序 |
2.3主机序转网络序
No. |
函数 |
含义 |
作用 |
1 |
htons() |
host to network short |
把unsigned short类型从主机序转换到网络序 |
2 |
htonl() |
host to network long |
把unsigned long类型从主机序转换到网络序 |
3IP地址转换操作
192.168.1.11(string)–>atoi->>192.168.1.11(int)–>htonl–>192.168.1.11(网络序)
3.1点分十进制(stringIP)转换成网络序
3.1.1函数原型
int inet_pton(int af, const char *src, void *dst)