Advertisement

Linux系统编程-Server Socket (11)

阅读量:

在早期网络编程中,在使用网络编程函数时都会基于一个称为"struct sockaddr"的结构体进行操作。然而,在技术的进步与发展下,在IPv4协议被提出后,在为了确保向后兼容性的前提下,"sockaddr"这一概念逐渐被退化为一个仅具有作用于void *指针变量的作用域,并在内部会被强制类型转换为sockaddr_in、sockaddr_un或scokaddr_in6其中之一。其中,sockaddr_in标识符对应于AF_INET协议,sockaddr_un标识符对应于AF_UNIX操作系统,而scok addr_in6标识符则对应于AF_INET6协议。

在定义阶段, 建议应定义为struct sockaddr_in, 而在实际应用中, 传递参数时需强制转换为struct sockaddr *

bind函数,accept函数,connect函数调用时会遇到这个问题。

复制代码
           struct sockaddr_in {
               sa_family_t    sin_family; /* address family: AF_INET */
               in_port_t      sin_port;   /* port in network byte order */
               struct i

全部评论 (0)

还没有任何评论哟~