第2节  简单UDP通信

更新于 2026年10月10日 版权声明
第2节 简单UDP通信

Socket的中文称为“套接字”,是专门用于开发通信程序的句柄。在软件通信过程中,Socket管理端口的创建、侦听、连接和数据收发等功能。

创建一个工程名为“u”的对话框程序,用于演示创建UDP端口并进行简单的数据通信。

1)在主对话框中增加一些控件,如图15-4所示。

图示

图15-4编辑主对话框资源

2)修改控件属性,见表15-3。

表15-3 主对话框的控件属性

图示

3)新建一个CSocket派生类CSocku,用于截获接收到的网络通信数据,如图15-5所示。

图示

图15-5 添加新类

4)在新建的CSocku类的头文件中包含基类头文件。

图示

5)在CSocku类中添加虚函数OnReceive,用于截获接收到的网络数据,如图15-6所示。

图示

图15-6 添加虚函数

6)修改虚函数代码。

图示

7)在主对话框类的头文件中,添加一个CSocku类型的成员变量。

图示

8)修改主对话框初始化函数代码。

图示

9)编译并运行,测试代码,启动后弹出Socket错误号码是10093。

10)在主菜单中,执行Tools->Error Lookup命令,如图15-7所示。

图示

图15-7 查看错误代码(https://www.daowen.com)

11)在错误查找对话框中,可以看到错误原因是未执行Socket初始化,如图15-8所示。

图示

图15-8 错误代码说明

12)在App类的进程启动函数InitInstance开头,添加一行代码初始化Socket。

图示

13)在主对话框类中,添加“发送(&S)”按钮的消息映射函数OnOK。

图示

图示

14)编译并运行,测试代码,如图15-9所示。

输入本机IP地址以及8828的端口号后,在输入编辑框内输入一些文字再按<Enter>键。发送数据的目标是本机,因此,在本机接收到了单击“发送”按钮时发出的数据。

图示

图15-9 查看运行结果

15)继续修改主对话框类的OnOK函数,在函数末尾追加以下代码。

图示

16)再次修改CSocku类中的OnReceive函数,将收到的数据和对方IP添加到历史编辑框内。

图示

图示

17)编译并运行,测试代码,如图15-10所示。

将生成的可执行文件在多台计算机中运行,分别输入不同的IP地址进行数据发送测试。

图示

图15-10 查看运行结果

18)如果只有一台计算机,也可以使用VMware软件安装一台虚拟机,如图15-11所示。

图示

图15-11 使用虚拟机进行网络测试

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)