MFC UDP广播

本文详细介绍了在MFC中如何实现UDP广播,包括接收端和发送端的创建及配置,强调了端口和IP在通讯唯一性中的作用。通过创建CAsyncSocket对象,设置广播属性并使用SendTo函数发送数据,确保广播报文正确发送到目标端口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

看了很多UDP通信的,总觉得不清晰,经过自己的实践和探索,在这里写下自己的心得。

之前一直在想,到底是什么确定了以太网通讯的地址唯一性,端口是什么,IP是什么?

做过TCP的朋友知道,TCP服务器使用一个端口来监听,比如2000,客户端去连接服务器端的时候,我们连接的是2000这个端口,服务端得到这个连接请求后,

是重新分配了一个套接字来和客户端连接,并且,这个时候端口绝对不是2000了,也就是说:客户端和服务器重新分配的套接字,重新开启了一个端口作为通讯管道。

那么,端口是什么?端口就是通讯管道,或者是一条通讯线路。比如一条电话线,在一条电话线上,可以有多部电话,但是每一部电话的号码不一样,号码就是IP地址了。

所以IP地址 + 端口,决定了通讯的唯一性。为什么要讨论这个呢,是因为UDP的时候,这个决定了我们接收端程序要怎么编写。

我们先写接收端程序,在这里,我采用CAsyncSocket来作为通讯套接字。也可以采用CSocket.

我们假设接收端使用端口号为:20000,发送端端口号为:20001.

一.接收端程序:

1.创建套接字

CAsyncSocket m_recevieSocket;

AfxSocketInit();//初始化套接字

m_recevieSocket.Create(20000,SOCK_DGRAM); //基于端口20000创建UDP通讯套接字。这里我们省去了bind这一步,因为MFC的套接字会自动Bind。

创建后,套接字已经和本地IP绑定,端口号为20000.这表示什么呢?表示所有发送到当前电脑的IP,端口为20000的数据,都会发送到套接字m_recevieSocket来

2.接收函数:接收有2种方式,一种是直接接收,不管对方IP,一种是想知道对方

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值