高考完了,闲着没事, 想写一个 c/s ,但是在 协议域 装入有了一些问题。
struct sockaddr_in servaddr;
servaddr.sin_port = 6789;
servaddr.sin_addr.s_addr = htonl(INADDR_ANY); //local host ip
servaddr.sin_family = AF_INET;
本来很正常的代码,由于我强烈的好奇心,想看下 sockaddr_in 的结构体定义, 不看还好, 一看吓一跳...
struct sockaddr_in
{
__SOCKADDR_COMMON (sin_);
in_port_t sin_port; /* Port number. */
struct in_addr sin_addr; /* Internet address. */
/* Pad to size of `struct sockaddr'. */
unsigned char sin_zero[sizeof (struct sockaddr) -
__SOCKADDR_COMMON_SIZE -
sizeof (in_port_t) -
sizeof (struct in_addr)];
};
书上直接把 servaddr.sin_family 赋值了, 可是结构体里没有呀, 但编译没错呀,于是开始了我的鼓捣...
书上说的和代码有很多不一样的地方,