windows udp 广播-发送

在网络编程方面,最初用 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;

posted @ 2018-12-04 15:18  蟀齐  阅读(557)  评论(0编辑  收藏  举报