Тайм-аут чтения файла сокета Python? - PullRequest
1 голос
/ 02 августа 2011

Я использую python-сокет в качестве файла для общения с другим процессом:

def connect(self):
    try:
        self.sock = socket.socket( socket.AF_INET, socket.SOCK_STREAM)
        self.sock.connect( (self.target, self.port) )
        self.fobj = self.sock.makefile()

Обычно я пишу команду через сокет и ожидаю ответа в течение определенного периода. Итак, мой вопрос: есть ли способ добиться тайм-аута при чтении строки из объекта файла сокета?

Спасибо,

1 Ответ

2 голосов
/ 02 августа 2011

Взято из Документация Python о socket.makefile():

socket.makefile ([mode [, bufsize]])

Возвращает объект файла, связанный с сокетом. (Файловые объекты описаны в Файловых объектах.) Файловый объект ссылается на версию dup () ped дескриптора файла сокета, поэтому файловый объект и объект сокета могут закрываться или собираться мусором независимо. Сокет должен находиться в режиме блокировки (он не может иметь тайм-аут) . Необязательные аргументы mode и bufsize интерпретируются так же, как и встроенная функция file ().

Следовательно, у вас не может быть тайм-аута для файла сокетов, если вам нужны тайм-ауты, вы должны использовать обычные сокеты.

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