我有一个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)
谢谢!
答案 0 :(得分:1)
问题是套接字服务器没有如此快速地关闭而第二台服务器开始快速而不能因为端口被使用。
我修改了dServer.py
,现在在我调用server.bat
之前我关闭套接字。