1.首先需要知道广播使用地址是:
255.255.255.255
2.本地广播信息是不会被路由器转发的。
3.不需要知道服务端ip地址
广播很重要一点是就是不用知道ip。
服务器代码,可以参照上一篇博客,不用改动。
客户端代码如下:
#include <iostream>
#ifdef WIN32
#include <Windows.h>
#else
#include <sys/types.h>
#include <sys/socket.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <fcntl.h>
#endif
using namespace std;
int main(int argc, char* argv[])
{
unsigned short port = 8080;
if (argc > 1)
{
port = atoi(argv[1]);
}
#ifdef WIN32
WSADATA ws;
WSAStartup(MAKEWORD(2, 2), &ws);
#endif
int sock = socket(AF_INET, SOCK_DGRAM, 0);//这样就创建了UDP的socket,这个与tcp的socket是有区别的,
//tcp绑定之后,这个socket只能用于接收用户的连接,在udp
//这个socket可直接进行数据接收
//设置为广播类型
int opt = 1;
setsockopt(sock, SOL_SOCKET, SO_BROADCAST, (char*)&opt, sizeof(opt));
sockaddr_in saddr;
saddr.sin_family = AF_INET;
sa