windows udp 广播-发送

本文深入探讨Windows Socket编程,包括使用C#与C进行网络编程的对比,详细讲解了使用C语言进行面向原始套接字编程的过程,从启动Socket API到设置广播属性,以及广播与单播的区别。

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

在网络编程方面,最初用 C ,后来使用了一段时间的 C# .Net框架编程。 C# 它屏蔽了socket 编程的许多细节。

但是我还是回过头来使用面向 原始套接字编程的 c。这样才能学到更多。

先来回顾一下windows socket编程

需要

1)头文件 <windsock2.h>

2)库文件 "ws2_32.lib"

启动socket api(这一步与在linux系统中有区别)

WSADATE  wsaDate;

wVersionRequested  =  MAKEWORD(2,2);

err = WSAStartup(wVersionRequested, &wsaDate);

然后可以检查 wsaDate 结构体中启动的版本信息是否相同

下面我从简单的发送一条信息为例: client 发一条信息给 server

我们需要两个地址结构

sockaddr_in client,server;

在填充client.port时可以指定端口,也可以不指定(设为0);

填充server.addr为255.255.255.255,端口一定要指定;

还要记得重要的一点:发送套接字 socket 属性设置要设置为 广播 

否则会报错

bool bOpt = true;
setsockopt(connect_socket, SOL_SOCKET, SO_BROADCAST, (char*)&bOpt, sizeof(bOpt));

我们比较一下广播与单播的不同

单播不需要设置套接字属性,应为默认为单播。单播就必须指定具体的地址 server.addr;

转载于:https://www.cnblogs.com/zfq572815535/p/10064295.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值