Протокол недоступен на SO_ACCEPTCONN - PullRequest
0 голосов
/ 07 марта 2020

Я попробовал следующий код и получил ошибку OSError: [Errno 92] Protocol not available. Что я делаю не так?

import socket

s2 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s2.setsockopt(socket.SOL_SOCKET, socket.SO_ACCEPTCONN, 0)

1 Ответ

1 голос
/ 07 марта 2020

Неясно, чего вы пытаетесь достичь, используя эту опцию. Но в документации четко сказано:

SO_ACCEPTCONN
Возвращает значение, указывающее, был ли отмечен этот сокет для приема соединений с listen (2). Значение 0 указывает, что это не прослушивающий сокет, значение 1 указывает, что это прослушивающий сокет. Эта опция сокета доступна только для чтения.

Таким образом, нет смысла использовать эту опцию с setsockopt (запись), и поэтому она не поддерживается. Использование только с getsockopt (чтение) имело бы смысл.

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