服务器端:
@echo off
setlocal enableextensions enabledelayedexpansion
set fn=MsgMonitor
set img=%fn%.exe
set sigStart=start%fn%
set sigKill=kill%fn%
set sigOk=OK
set destMa=172.168.5.222
set destUser=hhgg
set destPwd=whgshh
:first
echo %img% 发布程序服务端 0.1
tasklist | find "%img%"
if ERRORLEVEL 1 (
start %img%
)
echo 无限期等待 %sigKill% 信号……
waitfor %sigKill%
taskkill %img%
echo 向 %destMa% 发送 %sigOK
waitfor /S %destma% /U %destUser% /P %destPwd% /SI %sigOK%
echo 无限期等待 %sigStart% 信号……
waitfor %sigStart%
start %img%
echo 向 %destMa% 发送 %sigOK
waitfor /S %destma% /U %destUser% /P %destPwd% /SI %sigOK%
goto first
@echo on
客户端:
@echo off
setlocal enableextensions enabledelayedexpansion
set fn=MsgMonitor
set img=%fn%.exe
echo %img% 发布程序客户端 0.1
set sigStart=start%fn%
set sigKill=kill%fn%
set sigOk=OK
set destMa=172.168.99.240
set destUser=Administrator
set destPwd=cti-server
rem taskkill /IM %IMG% /U Administrator /P cti-server /S //172.168.99.240
echo 发送 %sigKill% 到 %destMa%,让 %destMa% 杀死 %img%
waitfor /S %destMa% /U %destUser% /P %destPwd% /SI %sigKill%
if ERRORLEVEL 1 goto end
echo 等待 %destMa% 响应 %sigOK%
waitfor /T 60 %sigOK%
if ERRORLEVEL 1 (
echo 等待超时,%destMa% 上可能没有启动 %img% 发布服务。
goto end
)
echo 发布 %img%
copy Release_jTTS/%IMG% //172.168.99.240/C$/IVR/MsgMonitor /-Y
echo 向 %destMa% 发送 %sigStart%
waitfor /S %destMa% /U %destUser% /P %destPwd% /SI %sikStart%
echo 等待响应 %sigOK%
waitfor /T 60 %sigOK%
if ERRORLEVEL 1 (
echo 等待超时,%destMa% 上可能没有启动 %img% 发布服务。
goto end
)
echo 发布成功
:end
endlocal
@echo on
工作说明:
首先无限期等待客户端发送 sigKill 信号,收到此信号后,用 taskkill 杀死名字是 img 的进程,然后向客户端发送 sigOK,客户端此时更新 img 程序,更新完毕后再向服务端发送 sigStart,服务器收到 sigStart 后,启动 img 程序,然后向客户端发送 sigOK 信号。
使用说明:
把 img 设置为你的程序的名字。
问题:
服务端和客户端必须在同一网段内,比如 172.168.5.222 和 172.168.5.223可以互相发送同步信号,但是 172.168.5.222 和 172.168.99.240就不能互发同步信号,虽然他们在同一子网内。有谁知道如何解决吗?
@echo off
setlocal enableextensions enabledelayedexpansion
set fn=MsgMonitor
set img=%fn%.exe
set sigStart=start%fn%
set sigKill=kill%fn%
set sigOk=OK
set destMa=172.168.5.222
set destUser=hhgg
set destPwd=whgshh
:first
echo %img% 发布程序服务端 0.1
tasklist | find "%img%"
if ERRORLEVEL 1 (
start %img%
)
echo 无限期等待 %sigKill% 信号……
waitfor %sigKill%
taskkill %img%
echo 向 %destMa% 发送 %sigOK
waitfor /S %destma% /U %destUser% /P %destPwd% /SI %sigOK%
echo 无限期等待 %sigStart% 信号……
waitfor %sigStart%
start %img%
echo 向 %destMa% 发送 %sigOK
waitfor /S %destma% /U %destUser% /P %destPwd% /SI %sigOK%
goto first
@echo on
客户端:
@echo off
setlocal enableextensions enabledelayedexpansion
set fn=MsgMonitor
set img=%fn%.exe
echo %img% 发布程序客户端 0.1
set sigStart=start%fn%
set sigKill=kill%fn%
set sigOk=OK
set destMa=172.168.99.240
set destUser=Administrator
set destPwd=cti-server
rem taskkill /IM %IMG% /U Administrator /P cti-server /S //172.168.99.240
echo 发送 %sigKill% 到 %destMa%,让 %destMa% 杀死 %img%
waitfor /S %destMa% /U %destUser% /P %destPwd% /SI %sigKill%
if ERRORLEVEL 1 goto end
echo 等待 %destMa% 响应 %sigOK%
waitfor /T 60 %sigOK%
if ERRORLEVEL 1 (
echo 等待超时,%destMa% 上可能没有启动 %img% 发布服务。
goto end
)
echo 发布 %img%
copy Release_jTTS/%IMG% //172.168.99.240/C$/IVR/MsgMonitor /-Y
echo 向 %destMa% 发送 %sigStart%
waitfor /S %destMa% /U %destUser% /P %destPwd% /SI %sikStart%
echo 等待响应 %sigOK%
waitfor /T 60 %sigOK%
if ERRORLEVEL 1 (
echo 等待超时,%destMa% 上可能没有启动 %img% 发布服务。
goto end
)
echo 发布成功
:end
endlocal
@echo on
工作说明:
首先无限期等待客户端发送 sigKill 信号,收到此信号后,用 taskkill 杀死名字是 img 的进程,然后向客户端发送 sigOK,客户端此时更新 img 程序,更新完毕后再向服务端发送 sigStart,服务器收到 sigStart 后,启动 img 程序,然后向客户端发送 sigOK 信号。
使用说明:
把 img 设置为你的程序的名字。
问题:
服务端和客户端必须在同一网段内,比如 172.168.5.222 和 172.168.5.223可以互相发送同步信号,但是 172.168.5.222 和 172.168.99.240就不能互发同步信号,虽然他们在同一子网内。有谁知道如何解决吗?