python multiprocessing socket.error: [Errno 111] В соединении отказано?

Я делаю простое соединение сервер/клиент, используя многопроцессорность в python 2.7.
Когда я запускаю клиентский код в отдельной оболочке python, соединение проходит успешно, но когда я запускаю приложение в целом, я получаю «socket. ошибка: [Errno 111] В соединении отказано".

Это трассировка:

Traceback (most recent call last):
  File "./kaboom", line 276, in <module>
    sequence.run(testEnv)
  File "/e/m/amoreau/test_edit/kaboom/src/kbmSequence.py", line 271, in run
    if testEnv.open() != SUCCESS:
  File "/e/m/amoreau/test_edit/kaboom/src/kbmTestEnv.py", line 518, in open
    queueManager = resultsClient.QueueServerClient()
  File "/e/m/amoreau/test_edit/kaboom/resultsClient.py", line 15, in QueueServerClient
    manager.connect()
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 474, in connect
    conn = Client(self._address, authkey=self._authkey)
  File "/usr/lib64/python2.6/multiprocessing/connection.py", line 143, in Client
    c = SocketClient(address)
  File "/usr/lib64/python2.6/multiprocessing/connection.py", line 263, in SocketClient
    s.connect(address)
  File "<string>", line 1, in connect
socket.error: [Errno 111] Connection refused  

Почему это происходит? Я отключил все брандмауэры.


person user1598655    schedule 17.12.2012    source источник
comment
Не могли бы вы привести сокращенный пример вашего кода?   -  person Sebastian Werk    schedule 29.10.2013


Ответы (1)


Привет, у меня только что была эта проблема. Я знаю, что это старый ответ, но я нашел ответ в соответствующем вопросе. Он указан ниже. Проблема в том, что клиент пытается подключиться к серверу до того, как сервер создал сокет.

Ну, так было в моем случае. Выключение сервера в другой процесс занимает немного больше времени, чем попытка клиента подключиться. Чтобы проверить, я поместил спящий вызов в свой клиент, и, конечно же, больше никаких ошибок.

Ошибка сокета Python — отказ в соединении

person Jimmy    schedule 30.05.2017
comment
Джимми, ты настоящий MVP. Предоставление ответов в мертвой теме, просто чтобы какой-нибудь рандо (я) мог найти ответ в будущем. Спасибо за вашу службу, сэр. - person deepelement; 29.05.2019