WINCE设备UDP SOCKET开发体会
来源:互联网 发布:网络女主播电影的歌曲 编辑:程序博客网 时间:2024/06/07 01:36
WINCE设备UDP SOCKET开发体会
最近项目要求做一个监控项目,初步决定采用TCP+UDP的方式来实现。
在PC上一切调试通过,可部署到服务器和WINCE终端上后,出现了一些没有预料到的问题,只能说经验太少。
经过一段时间的测试和请教,监控服务开始试提供了,在此特感谢张国威在开发过程中的热情帮助。
以下是在开发过程中的一些体会,不保证完全正确,但都是在开发过程中碰到的一些问题,如有错误,敬请指正,不胜感激。
注:本文档中提到的socket均为UDP方式。
1,WINCE终端通过GPRS连接到网络,网络运营商会随机分配一个局域网ip给终端,终端需要通过通信运营商的网关连接到公网实现数据的收发。
2,在终端使用的过程中,如果出现重启或者断线重连的情况,那终端的ip也会随之改变。
3,WINCE终端上创建socket,往服务器指定端口发送数据时,在持续发送数据的过程中,会出现端口改变的情况,具体变化和终端向服务发送数据的时间间隔有关,具体分析如下:
假设设备和服务器的连接超时时间为T(该超时经过测试,用移动的GPRS,超时时间大概在30s左右),终端向服务器发送数据的时间间隔为t,则:
a) t < T:终端向服务器发送数据的端口不会改变,服务器也能向终端推送数据。
b) t > T:终端向服务器发送数据的端口发生改变(系统指定),服务器向终端推送数据失败。
4,鉴于3所描述的现象,难道终端上的socket不能调用bind绑定指定端口吗?经测试,即使调用bind函数来指定端口,可从服务器接收到的数据包来看,端口并非是指定的端口(这个是为什么?请高人解惑)。
5,服务器采用收发使用不同端口的模型的分析:
a) 终端创建socket,向服务器的recvPort发送数据;
b) 服务器收到数据后,使用sendPort向终端发送处理结果;
该模型使用的情况分析:
1) 服务器-终端:同一局域网,A成功,B成功;
2) 服务器-终端:公网-公网,A成功,B成功;
3) 服务器-终端:公网-局域网,A成功,B失败;
结论:
1,WINCE设备不能创建一个只接收数据的服务端.
2,WINCE设备的超时时间大概30秒到一分钟左右.
3,如果要实现服务器下发数据到终端,则终端需定时发送心跳包(心跳包时间间隔需小于超时时间)
- WINCE设备UDP SOCKET开发体会
- Windows socket UDP开发实例
- CCESocket: a general purpose TCP/UDP socket class for WinCE
- 开发WinCE设备更新工具过程--详记
- windows下socket开发udp程序
- Android 开发 Socket 基于UDP通讯
- unity开发:UDP socket网络连接
- 关于cypress3014开发uvc+vitual com组合设备的体会
- socket udp
- socket UDP
- socket udp
- UDP Socket
- SOCKET UDP
- UDP Socket
- udp socket
- socket udp
- udp socket
- udp socket
- 对所有想学SEO的一句话--小集喔SEO记录28
- c#控制台输出到form
- 使用 Linux 和 Hadoop 进行分布式计算
- 【java】关于Java 对象序列化您不知道的 5 件事
- C#实现ActiveX控件开发与部署---开发实现篇
- WINCE设备UDP SOCKET开发体会
- 对程序员职业规划的一些看法
- Tomcat User 配置
- Android 编译系统分析
- boost::bind
- 函数指针 详解 (第一章 函数指针介绍)
- 为什么C和C++牛人多?
- C# WebBrowser强制使新窗口网页只在WebBrowser打开
- 回到未来 – 大胆畅想如何追赶并超越腾讯模式