大多数套接字函数,都需要一个指向套接字地址结构的指针作为参数,每个协议族都定义了自己的套接字地址结构。这些结构的名字都是以sockadd_开头,并以对应每个协议族的唯一后缀结尾.
IPv4套接字地址结构也称为“网际套接字地址结构”.所以套接字的地址结构名为 sockaddr_in ( in 为 internet的缩写).
struct in_addr {
in_addr_t s_addr;
};
struct sockaddr_in{
unit8 sin_len;
sa_family_t sin_family;
sa_port_t sin_port;
struct in_addr sin_addr;
char sin_zero[8];
};
通用套接字地址结构
struct sockaddr {
unit8 sa_len;
sa_family_t sa_family;
char data[14];
};
值-结果参数:
传递方向的不同:
1)从进程到内核的传递: bind, connect sendto ,这些函数的一个参数是指向某个套字节地址结构的指针,另一个参数是该结构的整数大小.
2) 从内核到进程的传递:accept,recvfrom,getsockname,getpeername.这些函数的其中的两个参数是 指向某个套接字地址结构的指针,和 指向表示该结构大小的整数变量的指针。