.Net Compact Framework 基础篇之Socket通信

看到有很多人问关于WM中使用Socket的问题,做个Demo来演示下。在这个Demo过程中遇到的一些问题和大家分享下。



Socket通信中的服务器端,采用TcpListener

在TcpListner实例化时,就指定好了监听的IP和Port

Code


然后通过AcceptSocket方法获得Socket对象。

Code


在PC端测试中,创建TcpClient对象

同样实例化TcpClient对象后,通过Client属性来获得Socket对象。

Code


测试通过后,在Mobile设备中进行测试

在Mobile中,直接创建Socket对象。

这里想说明的是,你可以直接在通信2端直接创建Socket对象来连接,当然也可以创建TcpListener和TcpClient对象。效果是一样的。

Code


效果如下:

服务器端:


 附件: 您所在的用户组无法下载或查看附件



Mobile端:


 附件: 您所在的用户组无法下载或查看附件



最后大家要注意的:

当在模拟器上测试时,服务器和客户端都在同一台机器上时,服务器的监听IP特别注意,一定要设为IPAddress.Any。否则指定了一个IP后,在Mobile设备进行Socket通讯时,会有问题,会报强制关闭一个连接的错误。

其实模拟器或实际设备都是通过DMA的方式访问网络资源,这样的话,访问速度会快很多。当然,你也可以设置模拟器或者实际设备通过TCP/IP方式连接。但这样做法不提倡。



如何实现通过TCP/IP方式连接:

在Tools->Options->Device Tools->Devices->选择一个设备->Properties->将Transport改成Tcp Connect Transport即可。

在部署到实际设备时,还需要拷贝Programs Files\Common Files\Microsoft Shared\CoreCon\1.0\Target\wce400\<CPU>文件夹下的dll和exe拷贝到设备的Windows目录

然后在设备中运行CommanClient2.exe

如果设备上的安全功能开启的话,还要运行设备上的CMAccept.exe



模拟器如何实现,暂时没有找到相关资料。



代码下载:
 附件: 您所在的用户组无法下载或查看附件

(文/appleseeker  出处/博客园)

 感谢原创者的辛勤劳动,希望对您有所帮助,转载请注明原出处。
 您可能对 [Visual Studio.NET] 的这些文章也感兴趣:

Windows Workflow Foundation 之旅---(6)开发活动
Windows Will Soon Enter Into the EC2 Cloud
NCache:最新发布的.NET平台分布式缓存系统
新控件Chart使用心得及感想
MIX08相关技术下载链接
.NET/Rotor源码研究1补遗 - 解决无法检测操作系统版本的错误
Visual Studio 2008改进版体验
QQ.NET,基于LumaQQ的.NET开源QQ开发包
什么是Python
PartCover: New Open Source Code Coverage Tool