IM over Socket Between Windows Mobile Devices
在《利用WiFi在Windows Mobile上建立Ad-hoc网络》一文中,讲述了利用WiFi在Windows Mobile上建立Ad-hoc网络的方法,在Windows Mobile 6与Windows Mobile 2003se for Pocket PC给出了演示。那么,点对点的Ad-hoc网络能够完成什么功能呢?一方面,它可以用来消息的实时发送与接收,也就是俗称IM(Instant Messager);另一方面,可以用来传送文件。这篇文章先来讲讲如何利用Socket来实现Windows Mobile设备之间的IM(其实Windows Mobile设备与PC同步以后,可以通过Socket与PC实现通信,具体可以参考Fox的Blog:Windows Mobile的简单IM程序(Socket via C# ))。
1. 应用分为Server端和Client端,写应用程序的时候,参考了《EVC高级编程及其应用开发》的第9章和第11章,该书的源代码可以在http://www.waterpub.com.cn/上下载。
2. 开发环境为Visual Studio 2008 + Windows Mobile 2003 for Pocket PC SDK + Windows Mobile 6 Pro SDK,使用MFC来开发。
3. 新建项目的时候,在Advanced Features选项中,选中Windows sockets,以添加对Socket的支持。如下图1所示:
图1: 添加Windows sockets支持
4. 设计Server端和Client端简单的UI,如下图2所示:
图2: Server端和Client端简单的UI
5. 通过Add Variable为控件添加成员变量。
6. 参考《EVC高级编程及其应用开发》第11章的内容,进行代码编写。Server端和Client端的文件组成如下图3所示:
图3: Server端和Client端的文件组成
7. 在Client端,CTCPClient_CE类完成TCP客户端操作的封装,然后在对话框中调用该类与TCP服务器建立连接,并进行数据传输,最后再断开与服务器的连接。在Server端,CTCPServer_CE类负责监听客户端的连接,一旦客户端有连接请求,它就负责接收此连接,并创建一个新的CTCPCustom_CE对象与客户端进行通讯。而CTCPServer_CE类接着监听客户端的连接请求。
8. 代码测试。按照《利用WiFi在Windows Mobile上建立Ad-hoc网络》的方法,利用WiFi在Windows Mobile上建立Ad-hoc网络。在Windows Mobile 2003se for Pocket PC设备上运行Server端程序,在Windows Mobile 6 Professional设备上运行Client端程序,如下图4所示:
图4: 设备测试截图
注:Server端和Client端均采用异步Socket方式通信。
最后,放上源代码,从这里下载:TCPTest.rar,希望对大家有用。
参考链接:
1. 《利用WiFi在Windows Mobile上建立Ad-hoc网络》
2. 《Windows Mobile的简单IM程序(Socket via C# )》
3. 《EVC高级编程及其应用开发》
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构