不,不只是惯例。
sockaddr是用于任何类型的套接字操作的通用描述符,而是
sockaddr_in特定于基于IP的通信的结构(IIRC,“ in”代表“
InterNet”)。据我所知,这是一种“多态性”:该
bind()函数假装采用
struct sockaddr*,但是实际上,它将假定传入了适当的结构类型;即,与您给它作为第一个参数的套接字类型相对应的套接字。

不,不只是惯例。
sockaddr是用于任何类型的套接字操作的通用描述符,而是
sockaddr_in特定于基于IP的通信的结构(IIRC,“ in”代表“
bind()函数假装采用
struct sockaddr*,但是实际上,它将假定传入了适当的结构类型;即,与您给它作为第一个参数的套接字类型相对应的套接字。