不要笑!菜鸟的服务端(定时接收)、客户端(定时发送),为嘛服务端接收不到数据?
本帖最后由 lamant 于 2014-6-10 17:07 编辑请各路大神帮忙看看,感谢!
在同一台电脑上测试以下:
客户端:(想实现每隔5秒发送“1”给服务端)
TCPStartup()
$iSocket = TCPConnect("127.0.0.1", 65532)
;If @error <> 0 Then Exit ;为啥我加这个,调试时自动退出???不加就正常?
AdlibRegister("Timer", 5000)
While 1
Sleep(5000)
WEnd
Func Timer()
TCPSend( $iSocket, "1" )
EndFunc 本帖最后由 lamant 于 2014-6-10 15:59 编辑
回复 1# lamant
服务端:(想实现每隔5秒就接收一次数据。如果接收不到、或者接收到的数据与“1”不一致,就标记+1;如果接收到的数据与“1”一致,就标记0。标记满5次以后自动退出并提示连接断开)
TCPStartup()
Local $iSocket = TCPListen( "127.0.0.1",65532)
If @error <> 0 Then Exit
Local $StringRev
Local $PLUSE = 1
Local $Plusecount = 0
AdlibRegister("_Timer", 5000)
While 1
Sleep(5000)
WEnd
Func _Timer()
$StringRev = TCPRecv($iSocket,1)
If $StringRev = $PLUSE Then
$PluseCount = 0
sleep(5000)
Else
$PluseCount += 1
sleep(5000)
If $PluseCount >= 5 Then
MsgBox(0,"提示","连接已断开")
Exit
EndIf
EndIf
EndFunc
TCPCloseSocket($iSocket)
TCPShutdown() @error的前提是已经出错了@error存放的只是你错误的具体是哪一种情况…… 定时发送、定时接收能不能商量好什么时候开始对话呢? TCPStartup()
AdlibRegister("Timer", 5000)
While 1
Sleep(30)
WEnd
Func Timer()
$iSocket = TCPConnect("127.0.0.1", 65532)
If $socket = -1 Then Exit
TCPSend( $iSocket, "1" )
EndFunc
其实这样就可以了!!AdlibRegister函数以定义5秒运行一次!没有毕要在循环里再加5秒! 回复 5# f4李文杨
谢谢!感谢解答!
页:
[1]