日期:2014-05-18  浏览次数:20766 次

WinCE中,针对WiFi、GPRS等,如何提高TCP通讯性能和效率等
由于终端是使用PDA,操作系统是WinCE,运算能力较差,在网络状况良好的状态下,也是接受TCP数据包缓慢,而且使用GPRS或者WiFi,这二者的网络都是有可能工作在极端环境中,因此经常导致超时或者数据掉包。

寻求一个通讯性能较好的解决方案。原因是我发现使用的逻辑公司的中间件通讯性能比我写的好很多,当然,我的数据包是的逻辑数据包的3--5倍左右,因为涵盖的逻辑不一样,涵盖的内容也不一样,这二者没有可比性。


我目前使用的是网络上找到TCP异步通讯Class,网址如下:

http://www.cnblogs.com/pengwenbing/archive/2010/08/31/1814040.html



------解决方案--------------------
友情帮顶.


------解决方案--------------------
如果想成10倍地提高,你应该改为使用udp通讯。但是这可能需要自己多做一些协议设计——主要是确认和重发机制——的设计。因为udp是不可靠的,你需要自己设计一种机制让它变得可靠。

我不知道你的环境有多恶劣。实际上在恶劣环境下不一定全都发送到服务器。一个pda可以把消息发给附近的几个pda,然后附近的pda在根据自己设计的简单路由机制继续发送给它附近的pda,这样通过几次转发就能发送到服务器附近了。
------解决方案--------------------
如果数据必须完整的话,就不要考虑udp了,
如果把udp加上包头,然后在服务端排序,并设计请求丢包重发机制那就是一个tcp,性能一样底下,而且maybe不稳定,我断了你这条路的念头。因为不像视频,他是尽力而为,允许丢包的。

不过有一点不明白的是,你的瓶颈看上去在终端上,你去改服务端干嘛??
另外需要设计的是终端的离线机制,考虑采用sqlite本地存储,然后在网络ok的时候发送,他速度慢性能差这是客观事实,你没办法改变,只能适应。
------解决方案--------------------
友情帮顶
有空会啦讨论下。
------解决方案--------------------
的逻辑的网络部分没有用过,但是别的设备用过,如果用有限的就WIFI,GPRS只是针对户外的,这种呢觉得用SOCKET传输还是要好些,服务器收到了还可以返回信息提示是否成功,不成功继续传输,我用GPRS做的连接的webservice,传的图片,掉了就必须重传,麻烦
------解决方案--------------------
处理,在服务器执行.
------解决方案--------------------
可能UDP的确在速度上更胜一筹,但是安全考虑也得加大。所以可能得在两者中找一个平衡点。不过个人到比较倾向于UDP