曼菲士 发表于 2011-6-11 14:29:29

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

本帖最后由 曼菲士 于 2011-6-11 16:51 编辑

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

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


根据以上测试结果,是不是AutoIT自带的TCP命令提供的功能不稳定?我没有用论坛里的TCP.AU3UDF,用的是纯粹自带命令,还请各位高手指点一二。

漠北雪~狼 发表于 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程序也有这样的问题,我怎么会忘了,非常感谢版主提醒,我找找资料看怎么解决先。

dyd 发表于 2011-6-11 18:02:46

路过。。。

一辈子为你 发表于 2012-11-6 11:04:04

驱动智能选择v2.2 Final驱动智能选择v2.2 Final

zhangpipi123 发表于 2013-3-20 20:33:52

学习一下,TCP在AU中 稳定性怎么样呢

lzqw 发表于 2015-12-23 08:46:19

太深了看不懂

luren666 发表于 2016-1-2 21:35:59

可能是版本的问题,我自己也有一个TCP通讯的程序,3.3.9.21版本运行完全正常,升级到3.3.13.X版本,客户机可以发消息到服务器,可是服务器回复信息,客户机老是收不到。研究了老半天才发现是因为自己没事升级AU3版本之后造成的。

傻娃 发表于 2016-2-3 11:20:12

太深了看不懂
页: [1]
查看完整版本: [已解决]AutoIT自带TCP功能是不是稳定性不好?