Я хотел бы проверить, установлены ли определенные параметры сокета в существующем сокете. То есть, в значительной степени все, что вы можете увидеть в:См. Параметры сокета в существующих сокетах, созданных другими приложениями?
#!/usr/bin/env python
'''See possible TCP socket options'''
import socket
sockettypelist = [x for x in dir(socket) if x.startswith('SO_')]
sockettypelist.sort()
for sockettype in sockettypelist:
print sockettype
Любой знает, как я могу увидеть варианты на существующих сокетов, то есть те, созданные другими процессами? Увы, почти вся документация, которую я читал по программированию сокетов на Python, - это создание новых сокетов.
Можете ли вы лучше узнать, что именно * вы хотите достичь (например, какое приложение и почему вы хотите узнать о параметрах сокета)? Как описано, я не думаю, что то, что вы хотите, возможно - в python или иначе. –
Несомненно. Я хотел бы иметь возможность протестировать приложения третьих сторон, которые правильно установили, скажем, keepalive, чтобы избежать известной проблемы в моей среде, когда это не задано. Я не имею доступа к источнику приложения третьей части. – mikemaccana
Начинаю отвечать на свой вопрос: некоторые исследования показывают, что опция «-o» таймеров в Linux netstat также показывает параметры сокетов в процессах. Исходя из этого, выясняется, что информация о параметрах сокета сохраняется в конечном поле в/proc/net/tcp в Linux. Я изучаю, может ли модуль procfs Python справиться с этим, или мне нужно создать свой собственный модуль ... – mikemaccana