如何解决? TCP传输,服务端没打开,客户端会卡死数秒
本帖最后由 the886 于 2010-1-16 20:06 编辑也就是,当服务器没有开机,有窗口的客户端运行到这条语句时会卡死数秒之后,才出现“不通”
#include <File.au3>
TCPStartup()
$iBeginTime = TimerInit()
$socket = -1
$socket = TCPConnect("192.168.1.5", 8410);连接到服务器
If $socket <> -1 Then
else
_FileWriteLog("bug.log", "不通 耗时: " & Round(TimerDiff($iBeginTime) / 1000, 4) & "秒")
msgbox(0,"","不通")
endif
结果
2010-01-16 20:05:09 : 不通 耗时: 20.9929秒 本帖最后由 ceoguang 于 2011-11-27 01:37 编辑
http://www.autoitx.com/forum.php?mod=redirect&mod=redirect&goto=findpost&ptid=28832&pid=368974&fromuid=1009 我想了一种,先用ping ,在用TCPConnect ,只要ping得通,就算TCPConnect不通,也比直接TCPConnect响应要快 用TCP,好像此问题很难解决,我也遇到过这问题,我的解决方法是:
客户端运行时,不进行TCP连接,而是建立一个UDP侦听,服务器端服务运行后,通过UDP广播向本段广播自已的IP地址和传送客户端激活TCP连接的标志位,让客户端自动设置服务器端IP和服务器进行TCP连接。
服务器关闭时,再传送关闭TCP标志位,停止客户端TCP连接。
这样的好处是,在网内的任何一台电脑运行服务器,客户端都能连接到服务器,而客户端也不会因为TCPConnect不通而造成的卡死。
页:
[1]