网络编程,从某种程度上说就是进程间通信,套接口类似于进程的ID,通过IP地址指定通信的主机,通过端口号指定和主机上的那个进程通信,也就是通过IP+端口号唯一确定了通信的进程。
通用套接口结构
结构:
struct sockaddr{
uint8_t sa_len;//数据长度
sa_family sa_family;//协议名
char sa_data[14];//14位的协议地址
}
头文件:sys/socket.h
说明:通用套接字接口结构
Posix.lg中数据类型
数据类型 |
说明 |
头文件 |
int8_t |
带符号的8位整数 |
sys/types.h |
uint8_t |
无符号的8位整数 |
sys/types.h |
int16_t |
带符号的16位整数 |
sys/types.h |
uint16_t |
无符号的16位整数 |
sys/types.h |
int32_t |
带符号的32位整数 |
sys/types.h |
uint32_t |
无符号的32位整数 |
sys/types.h |
sa_family_t |
套接口地址结构的地址簇 |
sys/socket.h |
socklen_t |
套接口地址的长度,一般为uint32_t |
sys/socket.h |
in_port_t |
TCP或UDP端口,一般为uint16_t |
netinet/in.h |
in_addr_t |
Ipv4地址,一般为uint32_t |
netinet/in.h |
IPv4套接口地址数据结构
结构:
struct sockaddr_in {
short int sin_family; //IPV4