UDP广播的代码
来源:互联网 发布:内网文件传输软件 编辑:程序博客网 时间:2024/05/16 19:11
在bind 广播地址 会一直返回-1,忽略即可~
服务器代码:
#include <stdio.h>#include <windows.h>#pragma comment(lib,"ws2_32.lib")#define ServicPort 1447void showerr(char * err,bool exit1){printf(err);if(exit1) {getchar();exit(0);}}int main(){WSAData wdata;WSAStartup(MAKEWORD(2,2),&wdata);SOCKET service;SOCKADDR_IN saddr={0};service = socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);int iaddrlen;if(service == INVALID_SOCKET){showerr("不能创建套接字!\n",true);return 0;}saddr.sin_port = htons(ServicPort);saddr.sin_family = AF_INET;saddr.sin_addr.S_un.S_addr = INADDR_BROADCAST;iaddrlen = sizeof(SOCKADDR_IN);//设置该套接字为广播类型bool bOpt = true;setsockopt(service,SOL_SOCKET,SO_BROADCAST,(char *)&bOpt,sizeof(bOpt));int err = bind(service,(SOCKADDR * )&saddr,iaddrlen);while(true){char * buffer = "Hello world!\n There is socket broadcast test !\n";int iret = sendto(service,buffer,strlen(buffer),0,(SOCKADDR * )&saddr,iaddrlen);if(iret == SOCKET_ERROR)printf("Send failed!\n");else printf("Success \n");Sleep(500);}return 0;}
这个是接收代码:
#include <stdio.h>#include <windows.h>#pragma comment(lib,"ws2_32.lib")#define ServicPort 1447void showerr(char * err,bool exit1){printf(err);if(exit1) {getchar();exit(0);}}int main(){WSAData wdata;WSAStartup(MAKEWORD(2,2),&wdata);SOCKET connect_sock;SOCKADDR_IN saddr={0};SOCKADDR_IN saddr_from={0};connect_sock = socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);int iaddrlen;if(connect_sock == INVALID_SOCKET){showerr("不能创建套接字!\n",true);return 0;}saddr.sin_port = htons(ServicPort);saddr.sin_family = AF_INET;saddr.sin_addr.S_un.S_addr = 0;saddr_from.sin_port = htons(ServicPort);saddr_from.sin_family = AF_INET;saddr_from.sin_addr.S_un.S_addr = INADDR_BROADCAST;iaddrlen = sizeof(SOCKADDR_IN);//设置该套接字为广播类型bool bOpt = true;setsockopt(connect_sock,SOL_SOCKET,SO_BROADCAST,(char *)&bOpt,sizeof(bOpt));int err = bind(connect_sock,(SOCKADDR * )&saddr,iaddrlen);if(err != 0){printf("%d %d\n",err,WSAGetLastError());showerr("绑定套接字失败!\n",true);}int count = 0;while(true){char buffer[1024]={0};int nsize;nsize = recvfrom(connect_sock,buffer,1024,0,(SOCKADDR *)&saddr_from,&iaddrlen);if(nsize>0)printf("%d : %s \n\n",count++,buffer);Sleep(2000);}return 0;}
0 0
- UDP广播的代码
- udp广播测试代码
- java udp广播代码示例
- udp 局域网广播发送代码
- udp 局域网广播接受代码
- java的udp广播
- UDP实现的广播通信
- UDP广播程序的实现
- UDP广播遇到的坑
- 正确使用UDP广播(C++代码)
- 正确使用UDP广播(C++代码)
- 正确使用UDP广播(C++代码)
- udp 广播 和 多播 java 代码
- C# UDP通信|C#的UDP通信|c# udp 广播
- UDP广播
- UDP广播
- udp广播
- UDP广播
- 信庭嵌入式工作室-ARM应用技术之体系结构应用(下)
- Oracle Data Gurad Physical Standby 相关说明
- 空类和空结构体的大小
- 机器学习算法与Python实践之(五)k均值聚类(k-means)
- servlet入门
- UDP广播的代码
- android Google推荐的容器SparseArrayCompat简介
- Brocade交换机和Cisco交换机STP/RSTP互操作
- 机器学习算法与Python实践之(六)二分k均值聚类
- UIImageView 图片填充模式 contentMode 详解
- slf4j 简单日记门面学习
- 机器学习算法与Python实践之(七)逻辑回归(Logistic Regression)
- Oracle RAC + Data Guard 环境搭建
- Windows 2003域更名工具