找回密码
 加入
搜索
查看: 5671|回复: 10

[网络通信] [已解决]AutoIT自带TCP功能是不是稳定性不好?

  [复制链接]
发表于 2011-6-11 14:29:29 | 显示全部楼层 |阅读模式
本帖最后由 曼菲士 于 2011-6-11 16:51 编辑

AUTOIT自带TCP命令TCPListen、TCPConnect之类的。

最近用AU3自带TCP命令写了个TCP程序,主要是数据库数据传输,服务端运行后,客户端启动时会向服务端申请数据,每次传送不会超过256字节,服务端向客户端发送16条数据,每次发一条,直到发完会发送完成指令给客户端,客户端就转入正常待命状态,测试中发送的指令都是英文,绝对没有中文,在平时测试中基本正常,十几次客户端启动测试中偶尔会出现几次发送的完成命令收不到,客户端一直处在接收状态,猜测是服务器发来的“数据发送完成”指令客户端没收到,当我打开迅雷下载BT电影时,问题更明显化了,每次都会出现16条数据传送有1-2条数据丢失的情况,十几次打开客户端测试接收数据只有一次是完整收到16次数据,其它时候都在14-15条数据。


根据以上测试结果,是不是AutoIT自带的TCP命令提供的功能不稳定?我没有用论坛里的TCP.AU3  UDF,用的是纯粹自带命令,还请各位高手指点一二。
发表于 2011-6-11 15:36:45 | 显示全部楼层
au3自带的TCP函数,MS非常稳定的说,从没碰到过楼主所说的情况。

TCP UDF里面的,倒是问题多多。
 楼主| 发表于 2011-6-11 15:48:16 | 显示全部楼层
本帖最后由 曼菲士 于 2011-6-11 15:54 编辑

TCPSEND发送的数据,在S和C都正常通讯的情况下(无防火墙),绝对能收到?
原来我都不做收到判断,总会少收数据,现在做了收到回复,若没有回复则重发数据才稳定得多。

是不是在循环发送数据时,应该加一个延迟?例如
for $i = 0 to UBound($data) -1
    TCPSend($sSocket, $sData)
    sleep(3)
next
发表于 2011-6-11 16:29:49 | 显示全部楼层
哦,我怀疑是循环时,各种地方都有粘包了?若是,可以试着去百度一下TCP粘包。
 楼主| 发表于 2011-6-11 16:51:24 | 显示全部楼层
噢,上次写的一个TCP程序也有这样的问题,我怎么会忘了,非常感谢版主提醒,我找找资料看怎么解决先。
发表于 2011-6-11 18:02:46 | 显示全部楼层
路过。。。
发表于 2012-11-6 11:04:04 | 显示全部楼层
驱动智能选择v2.2 Final驱动智能选择v2.2 Final
发表于 2013-3-20 20:33:52 | 显示全部楼层
学习一下,TCP在AU中 稳定性怎么样呢
发表于 2015-12-23 08:46:19 | 显示全部楼层
太深了看不懂
发表于 2016-1-2 21:35:59 | 显示全部楼层
可能是版本的问题,我自己也有一个TCP通讯的程序,3.3.9.21版本运行完全正常,升级到3.3.13.X版本,客户机可以发消息到服务器,可是服务器回复信息,客户机老是收不到。研究了老半天才发现是因为自己没事升级AU3版本之后造成的。
发表于 2016-2-3 11:20:12 | 显示全部楼层
太深了看不懂
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-6-10 21:30 , Processed in 0.084558 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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