wince Socket编程之一

 这几天准备好好研究一下网络通讯,研究的对象主要是针对wince的tcp/ip连接.
我的PDA是华硕620BT,它的操作系统是2003的,对应的操作系统版本号是4.2.
网络通讯用的是无线wifi网卡.

书籍方面参考了
<<WINDOWS网络编程技术>>这书想买还买不到了,我只有电子版的
<<EVC高级编程及其应用开发>>这书还是不错的,evc的书很少,找来找去就那么几本,它的9,10,11章都是写的socket编程,个人感觉还是不错的,11章在讲述tcp编程,同时提供了一个封装类.


wince的网络编程和win32是不太一样的,原理相通但是缺了很多API,
据书所写wince只支持socket1.1(书是好多年前出的),根据我研究结果,
wince4.2是支持了socket2.2的,当然支持归支持,要找到相应的.h文件和lib才行

如果直接使用socket的话需要
头文件
#include <winsock2.h>

然后在Project>>Setting>>link里面的Object/Library modules 填写"ws2.lib"

具体win32的socket编程和wince有什么不同呢?
举几个例子,
1,   win32里面的封装类是CSocket(同步),CAsyncSocket(异步)
      wince里面的是CCeSocket,虽然CCeSocket的基类是CSocket,但是wince里面用它是不可以的,因为The CSocket and CAsyncSocket classes rely on the standard Windows message-based notification of network events, but Windows CE does not support asynchronous event notification.

2,wince里面的setsockopt函数不支持几个设定

BSD options not supported for setsockopt are shown in the following table.
Value Type Description SO_ACCEPTCONN BOOL The socket is listening. SO_RCVLOWAT int Receives low watermark. SO_RCVTIMEO int Receives a time-out (available in Microsoft implementation of Windows Sockets 2 Specification). SO_SNDLOWAT int Sends low watermark. SO_SNDTIMEO int Sends a time-out (available in Microsoft implementation of Windows Sockets 2 Specification). SO_TYPE



我最想设置的SO_SNDTIMEO 竟然没有啊
原文地址:https://www.cnblogs.com/googlegis/p/2979253.html