Python Socket recvfrom () сверхурочно?

У меня есть поток с сокетом, который ожидает сообщения, используя:

message, addr = s.recvfrom(268)

Должен ли быть обработчик исключений, который через определенное время истечет время ожидания и сделает что-то еще?

Для справки, я реализую кольцо токенов в python, используя сокеты и потоки.


person DustBunny    schedule 20.02.2012    source источник


Ответы (1)


Вам нужно вызвать settimeout. Вы можете поймать socket.error для обнаружения тайм-аутов.

person ggozad    schedule 20.02.2012
comment
Я добавил тайм-аут исключения, но по истечении времени, которое я установил, я получаю сообщение об ошибке: AttributeError: объект '_socketobject' не имеет атрибута 'тайм-аут'. Я огляделся, и у некоторых других людей были проблемы, но их проблемы были связаны с Python, который был менее актуален. - person DustBunny; 21.02.2012
comment
хм, я исправил это, просто сказав, кроме того, что это может вызвать проблемы, если мне потребуется настроить какое-либо другое исключение, что будет правильным вызовом исключения для тайм-аута? - person DustBunny; 21.02.2012