python 套接字在重启应用程序后不工作
python socket doesn't work after restart application
我有一个 python 脚本服务器-> 客户端,出于某些原因,我使用 py2exe 从 py 生成一个 exe,这样我就可以在没有安装 python 的机器上使用。
我有并更新系统:
我向服务器发送命令更新,服务器启动一个 bat 文件:
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)
谢谢!
问题是套接字服务器没有那么快关闭,而第二个服务器开始快速但不能,因为它正在使用端口。
我修改了 dServer.py
,现在在调用 server.bat
之前我关闭了套接字。
我有一个 python 脚本服务器-> 客户端,出于某些原因,我使用 py2exe 从 py 生成一个 exe,这样我就可以在没有安装 python 的机器上使用。
我有并更新系统:
我向服务器发送命令更新,服务器启动一个 bat 文件:
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)
谢谢!
问题是套接字服务器没有那么快关闭,而第二个服务器开始快速但不能,因为它正在使用端口。
我修改了 dServer.py
,现在在调用 server.bat
之前我关闭了套接字。