У меня есть python script server-> client, и по некоторым причинам я использовал py2exe для вывода exe из py, поэтому я могу использовать на компьютерах без установленного python.
И у меня есть и обновление система: Я посылаю обновление команды на сервер и сервер запустить файл летучей мыши:python socket не работает после перезапуска приложения
suprocess.Popen("C:/Server/server.bat", shell=False) #
и server.bat содержат:
@echo off taskkill /f /im "dServer.exe" echo D | xcopy /s /y \\netpath\share\Server\c:\Server start dServer.exe exit
Первый раз, когда я начало DServer. exe работает, я могу отправить команду от клиента на сервер и получить ответ. Но после того, как обновление и dServer.exe снова запустится, сервер не будет работать, я получил ошибку socket.timeout и не могу отправлять команды.
Кто-нибудь знает, почему он не работает второй раз?
p.s У меня есть команда: server.setsockopt (socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
Спасибо!
Это работает, если вы даете ему достаточно времени между убийством и перезагрузкой? (в linux может потребоваться десятки секунд между завершением экземпляра сервера без чистого отключения ядра, пока другой экземпляр сервера не сможет успешно зарегистрироваться для прослушивания по тем же параметрам сокета). –