以下是有效套接字创建的示例(在C中):
// Construct local address structure
struct sockaddr_in servAddr; // Local address
memset(&servAddr, 0, sizeof(servAddr)); // Zero out structure
servAddr.sin_family = AF_INET; // IPv4 address family
servAddr.sin_addr.s_addr = htonl(INADDR_ANY); // Any incoming interface
servAddr.sin_port = htons(servPort); // Local port
我们需要将地址和端口转换为网络顺序,而不是地址系列。那是为什么?
答案 0 :(得分:2)
sin_family
未通过网络发送,因此无需使用网络字节顺序。它只是您操作系统的本地标志。它表示struct sockaddr *
指针的多态类型,因为IPv4不是唯一的格式。例如,AF_UNIX
地址无法获取IP地址和端口字段。