我试图制作一个接受连接的非常简单的服务器。sockaddr.sin_port = 1337与“真实”打开的端口不匹配
int sock, serv;
struct sockaddr_in in_sock;
serv = socket(AF_INET, SOCK_STREAM, 0);
in_sock.sin_addr.s_addr = 0;
in_sock.sin_port = 1337;
in_sock.sin_family = AF_INET;
bind(serv, (struct sockaddr *)&in_sock, sizeof(in_sock));
listen(serv, 0);
client = accept(serv, 0, 0);
但是尝试连接到127.0.0.1:1337的时候,我得到一个连接被拒绝的消息:
(未知)[127.0.0.1] 1337(?):连接被拒绝
然而一个简单的netstat -tcpan
让我发现,一个端口被打开确实:
TCP 0 0 0.0.0.0: 14597 0.0.0.0:* LISTEN
如果我将sin_port设置为更高的端口,它似乎可以正常工作。
缺少什么我在这里?为什么不打开1337端口?它似乎也是免费的。
你必须使用['htons'(https://linux.die.net/man/3/htons)的端口连接到交换机的字节顺序 –