Wince下eVC开发WinSock程序,connect函数总是立即返回0的问题。
2011-07-04 15:58
831 查看
Wince下eVC开发WinSock程序,connect函数总是返回0的问题。
前提:
一台Wince设备,一个串口线,一台PC。
Wince设备通过串口线连接到PC,使用ActiveSync工具同步,动态分配IP(DHCP)。
现象(问题):
在Wince下运行socket程序(系统底层利用ActiveSync通过PC连接网络),但connect函数立即返回,并且返回值始终为0(表示成功),
即便将PC的网络断开,即便连接的是一个任意的IP和端口,依旧立即返回一个0。
设计测试方案和分析:
方案一:将socket部分的程序移植到PC机上
结果:connect函数返回值正确,运行正常。
分析:所以问题应该出现在Wince设备本身或Wince设备与PC的连接上。
方案二:断开Wince设备与PC之间连接的串口线
结果: connect函数返回SOCK_ERROR,运行正常。
分析:所以问题出在了ActiveSync上。
方案三:不通过PC(即不使用串口线和ActiveSync工具),直接将Wince设备与服务器连接
结果:connect函数返回这正确,运行正常
方案四:Wince设备和PC通过串口线相连接,但是不启动ActiveSync或者断开ActiveSync连接。
结果:connect函数返回值正确,运行正常
分析:通过以上几种方案,可以进一步确定是ActiveSync引起的问题。
结论:
由于使用了ActiveSync工具和DHCP,使得Wince设备在网络连接上出现了错误。
可能的原因是:
当Wince设备与PC通过ActiveSync连接,Wince设备连接网络时,只要连接请求能通过ActiveSync传送到PC,就默认为发送连接成功了,PC负责接下来的发送数据。Wince设备只有当接收不到响应数据时,才会判断出连接已经断开,所以连接上一段时间后,才会发现网络连接错误。
前提:
一台Wince设备,一个串口线,一台PC。
Wince设备通过串口线连接到PC,使用ActiveSync工具同步,动态分配IP(DHCP)。
现象(问题):
在Wince下运行socket程序(系统底层利用ActiveSync通过PC连接网络),但connect函数立即返回,并且返回值始终为0(表示成功),
即便将PC的网络断开,即便连接的是一个任意的IP和端口,依旧立即返回一个0。
设计测试方案和分析:
方案一:将socket部分的程序移植到PC机上
结果:connect函数返回值正确,运行正常。
分析:所以问题应该出现在Wince设备本身或Wince设备与PC的连接上。
方案二:断开Wince设备与PC之间连接的串口线
结果: connect函数返回SOCK_ERROR,运行正常。
分析:所以问题出在了ActiveSync上。
方案三:不通过PC(即不使用串口线和ActiveSync工具),直接将Wince设备与服务器连接
结果:connect函数返回这正确,运行正常
方案四:Wince设备和PC通过串口线相连接,但是不启动ActiveSync或者断开ActiveSync连接。
结果:connect函数返回值正确,运行正常
分析:通过以上几种方案,可以进一步确定是ActiveSync引起的问题。
结论:
由于使用了ActiveSync工具和DHCP,使得Wince设备在网络连接上出现了错误。
可能的原因是:
当Wince设备与PC通过ActiveSync连接,Wince设备连接网络时,只要连接请求能通过ActiveSync传送到PC,就默认为发送连接成功了,PC负责接下来的发送数据。Wince设备只有当接收不到响应数据时,才会判断出连接已经断开,所以连接上一段时间后,才会发现网络连接错误。
相关文章推荐
- Wince下eVC开发WinSock程序,connect函数总是立即返回0的问题。
- 我以前总是错误地以为---“阻塞socket和非阻塞socket对应的connect函数都会立即返回”
- 我以前总是错误地以为---“阻塞socket和非阻塞socket对应的connect函数都会立即返回”
- iOS项目开发中,对后台返回数据为<null>时候的处理,避免取值产生程序崩溃问题
- c++/c socket应用的区别:socket()函数返回文件描述符fd总是0的问题
- iOS开发程序中各种变量的存储位置和程序返回变量的问题
- 关于Android开发中使用System.exit(0)的问题(如写返回键响应时用到双击退出函数的时候)
- iOS开发程序中各种变量的存储位置和程序返回变量的问题
- WaitForSingleObject或MsgWaitForMultipleObjects函数无返回,程序直接退出问题
- iOS项目开发中,对后台返回数据为<null>时候的处理,避免取值产生程序崩溃问题
- WaitForSingleObject或MsgWaitForMultipleObjects函数无返回,程序直接退出问题
- 使用 select 设计超时 connect 函数的问题(linux 上连接 127.0.0.1 任何端口总是成功)
- 微信小程序开发完工+问题汇总
- 微信小程序开发之真机测试 地图定位 map API 无法获取当前位置的问题
- (礼拜四log)前端开发,使用jq的.css函数添加属性时!important要注意的问题
- android开发:退出程序(对话框、两次返回键退出)
- C/C++中函数返回局部变量的问题
- 【iOS-cocos2d-X 游戏开发之十五】Cocos2dx中响应Android的Back(返回)与Menu(小房子)事件&&Cocos2dx自动释放粒子内存函数!
- android开发(26) 和其他应用交换数据方式一,使用intent指定自定义action调用其他程序里的activity,并获得其返回的结果
- 无法将“Update-Database”项识别为 cmdlet、函数、脚本文件或可运行程序的名称的问题