找回密码
 加入
搜索
查看: 4773|回复: 5

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

[复制链接]
发表于 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
 楼主| 发表于 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()
发表于 2014-6-10 21:38:56 | 显示全部楼层
@error的前提是已经出错了@error存放的只是你错误的具体是哪一种情况……
 楼主| 发表于 2014-6-12 14:34:29 | 显示全部楼层
定时发送、定时接收能不能商量好什么时候开始对话呢?
发表于 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秒!
 楼主| 发表于 2014-6-13 10:25:03 | 显示全部楼层
回复 5# f4李文杨

谢谢!感谢解答!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-23 19:56 , Processed in 0.075572 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表