我正在用 C 进行套接字编程,当我在地址 INADDR_ANY 和端口号 2000 上启动我的 tcpserver 时,它启动良好。但是使用命令 'netstat -tulpn' ,它显示服务器被分配了端口号53255
。客户端在使用服务器端口号连接时可以连接到此服务器53255
,但在尝试连接到端口号“2000”时会被拒绝。
有人可以解释为什么系统将错误的端口号分配给我的 tcpserver 而不是我想要使用的端口号 2000。
vm@vm:~/Documents/csepracticals/webserver/TCPWebserver$ netstat -tulpn
...
...
tcp 0 0 0.0.0.0:53255 0.0.0.0:* LISTEN 16291/webserver`
server_addr.sin_family = AF_INET;
server_addr.sin_port = SERVER_PORT; /*#defined to 2000*/
server_addr.sin_addr.s_addr = INADDR_ANY;
bind(master_sock_tcp_fd, (struct sockaddr *)&server_addr, sizeof(struct sockaddr));
你应该使用htons(SERVER_PORT)
而不是SERVER_PORT
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句