TCP-сервер использует неверный номер порта в Ubuntu 14.04 - PullRequest
0 голосов
/ 13 июня 2018

Я занимаюсь программированием сокетов на C, и когда я запускаю свой tcpserver по адресу INADDR_ANY и порту 2000, он запускается хорошо.Но, используя команду netstat -tulpn, она показывает, что серверу назначен номер порта 53255.Клиенты могут подключаться к этому серверу, когда они подключаются, используя номер порта сервера 53255, но получают отказ в подключении, когда они пытаются подключиться к номеру порта «2000».

Может кто-нибудь объяснить, почему система назначает неправильный порт no моему 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));

1 Ответ

0 голосов
/ 13 июня 2018

Вы должны использовать htons(SERVER_PORT) вместо SERVER_PORT

...