shihuolong 发表于 2010-5-30 18:30:19

问GPRS通过TCP/IP发送大数量的问题

用华为的模块在做大数据量的发送,结果发现采用模块内置的TCP/IP协议传输时,发送的数据量稍微一大(TCP/IP每一次发送不能超过1K,自己做分包发送处理),接收端收到的数据有时候就会有丢包现象,而软件中每一包发送提示的结果都是成功的。不知道大家有没有遇到过这样的问题,如何解决呢?

用TCP传输和TCP透明传输方式,都遇到了同样的问题

comway 发表于 2010-6-1 07:00:08

先验证服务器,找几个好点的tcp server试试

Appcat 发表于 2010-6-1 07:51:06

华为的模块并没有直接提示发送成功的功能,%IPSEND指令返回带着OK,仅仅是表示模块确认了命令有效。事实上,任何一个模块的发送指令都不会设计为直接返回是否发送成功的信息。
所以,当发送指令返回,不代表数据已经成功发送到服务器了,记住这一点,对深入理解GPRS网络的行为方式很关键。

terrylsz 发表于 2010-6-3 17:45:45

SIM300 是否适合做图像传输(30K 大小) ,SIM300 的数据缓冲有多大
默认数据缓冲是 1KB。对于图像传输的运用,建议使用 UDP 方式。
做数传时,最大上传的 Tcp 包的最大尺寸是多少
目前软件支持的最大封包是 1460 字节

shihuolong 发表于 2010-6-3 23:50:32

回复【1楼】comway
-----------------------------------------------------------------------

接收端是指定的IP以及端口号,还可以选择TCP Server吗?

shihuolong 发表于 2010-6-4 00:00:45

回复【2楼】Appcat 苹果猫
-----------------------------------------------------------------------

Appcat一语中的,是我一直理解错了。
那对于这些内置的TCP/IP协议,如何处理才能达到比较稳定的效果呢?
我尝试着发送间隔插入一定800ms的延时,也还是会有丢包的状况发生。。。一直很困惑
希望能够指点迷津啊

litteworm 发表于 2010-6-4 00:36:53

要稳定可靠传输 还是要在server这边效验 然后再下发确认信息吧

xuthusfang 发表于 2010-11-27 23:04:10

回复【2楼】Appcat 苹果猫
华为的模块并没有直接提示发送成功的功能,%ipsend指令返回带着ok,仅仅是表示模块确认了命令有效。事实上,任何一个模块的发送指令都不会设计为直接返回是否发送成功的信息。
所以,当发送指令返回,不代表数据已经成功发送到服务器了,记住这一点,对深入理解gprs网络的行为方式很关键。
-----------------------------------------------------------------------

sim300在封包模式下发送成功是会返回“SEND OK”的,如果根据"SEND OK"来决定下个包的发送还是很可靠的,我用1M多的文件测试多次不会出任何问题,不过速度也是很慢的,大约1分钟只能传1Kbyte的数据。如果封包模式下不管“SEND OK”自顾自往模块扔数据就算延迟5秒也还是很容易溢出,而且SIM300溢出的话麻烦就大了,直接把TCP连接断开。透传模式下倒没这个问题,仅仅丢包而已。
页: [1]
查看完整版本: 问GPRS通过TCP/IP发送大数量的问题