Возможно ли, что accept возвращает значение, аналогичное sockfd? - PullRequest
0 голосов
/ 31 мая 2018

Возможно ли, что accept () возвращает значение, аналогичное sockfd?

, например,

int newfd = accept(sockfd, NULL, NULL);

Возможно ли newfd == sockfd?

1 Ответ

0 голосов
/ 31 мая 2018

Краткий ответ: Нет .

Справочная страница accept() объясняет:

Системный вызов accept()используется с типами сокетов на основе соединений (SOCK_STREAM, SOCK_SEQPACKET).Он извлекает первый запрос на подключение в очереди ожидающих соединений для прослушивающего сокета, sockfd, создает новый подключенный сокет и возвращает новый дескриптор файла, ссылающийся на этот сокет .Вновь созданный сокет не находится в состоянии прослушивания.Исходный сокет sockfd не затрагивается этим вызовом.

Именно этот новый дескриптор сокета возвращается.

Аргумент sockfd являетсясокет, созданный с помощью socket(), связанный с локальным адресом с bind() и прослушивающий соединения после вызова listen().

Возвращенный дескриптор не существует до вызова accept().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...