lamant 发表于 2014-6-10 15:54:24

不要笑!菜鸟的服务端(定时接收)、客户端(定时发送),为嘛服务端接收不到数据?

本帖最后由 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:57:21

本帖最后由 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()

cumtljj 发表于 2014-6-10 21:38:56

@error的前提是已经出错了@error存放的只是你错误的具体是哪一种情况……

lamant 发表于 2014-6-12 14:34:29

定时发送、定时接收能不能商量好什么时候开始对话呢?

f4李文杨 发表于 2014-6-12 18:59:14

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秒!

lamant 发表于 2014-6-13 10:25:03

回复 5# f4李文杨

谢谢!感谢解答!
页: [1]
查看完整版本: 不要笑!菜鸟的服务端(定时接收)、客户端(定时发送),为嘛服务端接收不到数据?