Я пытаюсь создать очень простой сервер, который принимает соединение.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, я получаю соединение отказано сообщение:
(UNKNOWN) [127.0.0.1] 1337 (?): Соединение отклонено
Однако простой netstat -tcpan
показывает мне, что порт действительно открыт:
ТСР 0 0 0.0.0.0: 14597 0.0.0.0:* LISTEN
Если я установил sin_port с гораздо более высокими портами, он, похоже, работает нормально.
Что мне здесь не хватает? Почему не открывается порт 1337? Кажется, он тоже свободен.
вы должны использовать [ 'htons'] (https://linux.die.net/man/3/htons) для порта, чтобы переключить порядок байт –