MacOS 10.7.3, python 2.5
Я использую pyserial, чтобы открыть соединение с внешним сервером. Соединение открывается как:
HOST = '10.0.0.1'
PORT = '16010'
theURL = 'socket://' + HOST + ':' + PORT
conn = serial.serial_for_url(theURL, baudrate=115200)
conn.timeout = 2
и тогда чтение выглядит так:
try:
while len(rawData) == 0 and self.shutdown == False:
rawData = conn.readline()
except:
some error handling code...
Проблема в том, что если я убью сервер на 10.0.0.1:16010, код продолжит работать, но загрузка процессора возрастет до 100%. Ошибка не выдается, поэтому исключение никогда не вводится.
Это похоже на проблему в pyserial, но, возможно, кто-то здесь сталкивался с этим раньше и знает, как обнаружить потерянное соединение, чтобы можно было корректно обработать ситуацию.
Спасибо.