Errno 32 Сломанный канал, Errno 107 Транспортная конечная точка не подключена Python-сокет

Мой TCP-сервер написан на Qt 4.7, хорошо работает с TCP-клиентом, также написанным на Qt 4.7.

Я пытаюсь подключиться и общаться с сервером с клиентом, написанным на Python 2.7.3. Я запускаю процесс сервера через запрос apache http с subprocess.call(path_to_server), Я использую mod_wsgi 3.3 и django 1.4.

Соединение установлено без проблем. Я получаю [Errno 32] Broken pipe исключение на socket.send() случайно (я могу спамить одно и то же сообщение 10 раз, и оно будет отправлено 0-10 раз). То же самое происходит с socket.shutdown() & socket.close(), Я могу спам отключить команду, и она будет случайным образом отключаться, в противном случае получая [Errno 107] Transport endpoint is not connected исключение.

netstat -nap говорит, что соединение установлено.

Когда я пытаюсь запустить тот же клиентский скрипт с использованием оболочки python 2.7, все работает нормально.

Что мне здесь не хватает?

EDITВсе работает на Windows 7, работает та же конфигурация apache, mod_wsgi, python, django. TCP-сервер также совместим с Windows. Ошибка происходит на centos6.2 32bit.

1 ответ

Решение

Мне нужно было установить следующие настройки apache:KeepAlive OnMaxKeepAliveRequests 0KeepAliveTimeout 5

Я буду дальше исследовать проблему и посмотреть, если это правильное решение.

Другие вопросы по тегам