TC官方合作论坛

标题: 网络通信-----吐槽一下 [打印本页]

作者: milai5201    时间: 2014-10-11 13:53
标题: 网络通信-----吐槽一下
网络通信的教程好少,帮助文档也是含糊不清
相比易语言的服务器,客户端,数据报,远程服务 功能真的可以说是太匮乏了。
做dll吧 还是不能添加响应事件
能不能加点 响应事件啊  比如说 数据达到 客户离开之类的  
还是现在本来就有这个功能 我不会用呢?
做远程监控,如何判断一个客户离开?




作者: milai5201    时间: 2014-10-11 14:17
客户离开之前发一条信息过去 可以实现正常情况下运转的

但是意外离开的 比如突然断电断网 信息还没发出去 客户离开了 如何判断呢



作者: q273814    时间: 2014-10-11 18:44
对面没有反馈信息么 发一条过去反馈一条 如果多少次没有收到返回就是掉线了
作者: milai5201    时间: 2014-10-11 19:36
q273814 发表于 2014-10-11 18:44
对面没有反馈信息么 发一条过去反馈一条 如果多少次没有收到返回就是掉线了 ...

可以实现,但是局限性太大了啊,如果同时在线的客户数量比较多,问题随之而来了。一般的小型工作室都有几十台电脑一台电脑十开甚至更多,不说发送验证码,光是监控判断掉线与否就显得很吃力了
作者: 一只熊    时间: 2014-10-11 19:38
直接调winsock啊 用tc的这个不行的
作者: milai5201    时间: 2014-10-11 19:44
一只熊 发表于 2014-10-11 19:38
直接调winsock啊 用tc的这个不行的

是否有相关帖子 给我参考一下啊
作者: rainshine    时间: 2014-10-11 22:21
无限循环啊= =易语言的那些都不是原生的
作者: milai5201    时间: 2014-10-11 22:33
rainshine 发表于 2014-10-11 22:21
无限循环啊= =易语言的那些都不是原生的

服务器 客户端,数据报 都是原生的  远程服务是扩展的
作者: q273814    时间: 2014-10-12 00:09
milai5201 发表于 2014-10-11 19:36
可以实现,但是局限性太大了啊,如果同时在线的客户数量比较多,问题随之而来了。一般的小型工作室都有几 ...

不会 就算100台机子10秒钟判断一次 同时有100台机子 仅仅只是发送一个信息而已 影响几乎可以忽略 至于验证码之类的那毕竟要发文件 发文件比直接传几个字符要麻烦的多
作者: q273814    时间: 2014-10-12 00:12
还有 好像有专门获取局域网用户列表的方法你可以研究下 其实基本上原理都是一样的
作者: q273814    时间: 2014-10-12 00:15
下面这段VBS是判断局域网在线IP的 你用vbs试下 可以的话就转TC然后到你的总控端那边写进去看看
如果嫌转的麻烦就直接new个ScriptControl的com对象直接调用 看看可不可以
  1. strSubNet = "192.168.1."
  2. Set objFSO= CreateObject("Scripting.FileSystemObject")
  3. Set objTS = objfso.CreateTextFile("e:\PingResult.txt")

  4. For i = 1 To 254
  5. strComputer = strSubNet & i
  6. blnResult = Ping(strComputer)
  7. If blnResult = True Then
  8. objTS.WriteLine "Ping " & strComputer & " success!"
  9. End If
  10. Next

  11. objTS.Close
  12. WScript.Echo "Done!"

  13. Function Ping(strComputer)
  14. Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
  15. Set colItems = objWMIService.ExecQuery("Select * From Win32_PingStatus Where Address='" & strComputer & "'")
  16. For Each objItem In colItems
  17. Select case objItem.StatusCode
  18. Case 0
  19. Ping = True
  20. Case Else
  21. Ping = False
  22. End select
  23. Exit For
  24. Next
  25. End Function
复制代码


作者: rainshine    时间: 2014-10-13 22:03
milai5201 发表于 2014-10-11 22:33
服务器 客户端,数据报 都是原生的  远程服务是扩展的

……你根本不知道我在说什么 大神
作者: 超自然    时间: 2014-10-14 20:14
写个心跳包很吃力么?一个函数而已。又不用你忙什么,吃力那了??别说心跳包,网络脚本都搞过,1拖24机,每机6开,轻松搞定
作者: lqxhi    时间: 2014-10-27 10:51
可以利用窗口消息来实现响应事件




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1