UDP 网络广播通讯
来源:互联网 发布:淘宝知识产权 编辑:程序博客网 时间:2024/04/29 22:18
UDP面向无连接,数据发送端不管接收端有没有接收到或是否启动都将数据发送,所以接收端接收的数据有待验证,这也暗示着接收端和发送端启动顺序不限。
以下小实例仓促完成仅供学习讨论和参考:
发送端:
#include<stdlib.h>
#include<iostream>
#include<stdio.h>
#include<conio.h>
#include<winsock2.h>
#include<windows.h>
#include "atltime.h"
using namespace std;
#pragma comment(lib,"ws2_32.lib")
void main()
{
SOCKET sock;
sockaddr_in addrto;
WSADATA wsdata;
bool bsocket;
//启动SOCKET库,版本为2.0
WSAStartup(0x0202,&wsdata);
sock = WSASocket(AF_INET,SOCK_DGRAM,0,NULL,0,WSA_FLAG_OVERLAPPED);
bsocket = true;
addrto.sin_family = AF_INET;
addrto.sin_addr.s_addr = INADDR_BROADCAST;
addrto.sin_port = htons(8000);
bool opt = true;
//设置该套接字为广播类型,
setsockopt(sock,SOL_SOCKET,SO_BROADCAST,(char FAR *)&opt,sizeof(opt));
int nlen =sizeof(addrto);
CTime t;
ZeroMemory(&t,sizeof(t));
while(1)
{
Sleep(1000);
t = CTime::GetCurrentTime();
CString strtime = t.Format(_T("%H:%M:%S SendDataTest"));
int ret = sendto(sock,strtime.GetBuffer(0),strtime.GetLength() + 1,0,(sockaddr*)&addrto,nlen);
if(ret == SOCKET_ERROR)
{
printf("%d/n",WSAGetLastError());
}
else
{
printf("%s\n",strtime.GetBuffer(0));
}
}
return;
}
接收端:
#include<stdlib.h>
#include<iostream>
#include<conio.h>
#include<stdio.h>
#include<winsock2.h>
#include<windows.h>
#pragma comment(lib,"ws2_32.lib")
void main(void)
{
SOCKET sock;
sockaddr_in a;
WSADATA wsdata;
bool optval; //启动SOCKET库,版本为2.0
WSAStartup(0x0202,&wsdata);
optval=true; //然后赋值给两个地址,一个用来绑定套接字,一个用来从网络上的广播地址接收消息;
a.sin_family = AF_INET;
a.sin_addr.s_addr = INADDR_ANY;
a.sin_port = htons(8000);
int fromlength = sizeof(SOCKADDR);
sock = socket(AF_INET,SOCK_DGRAM,0);
setsockopt(sock,SOL_SOCKET,SO_BROADCAST,(char FAR *)&optval,sizeof(optval));
bind(sock,(sockaddr *)&a,sizeof(sockaddr_in));
char buf[256];
ZeroMemory(buf,256);
while(1)
{
recvfrom(sock,buf,256,0,(struct sockaddr FAR *)&a,(int FAR *)&fromlength);
printf("Receive *:%s \n",buf);
ZeroMemory(buf,256);
Sleep(1000);
}
return ;
}
- UDP 网络广播通讯
- udp 广播通讯
- Linux网络编程一步一步学-UDP方式广播通讯
- UDP点对点通讯、广播通讯、多播通讯
- UDP点对点通讯、广播通讯、多播通讯 .
- UDP点对点通讯、广播通讯、多播通讯
- java udp 广播及socket通讯
- 网络编程--Socket--UDP广播
- 网络程序之UDP通讯
- Qt之UDP的网络广播例子
- Linux网络编程 之 UDP 广播
- 【网络】广播/组播:UDP(无连接)
- Linux网络编程 之 UDP 广播 .
- Linux网络编程 之 UDP 广播 .
- Qt---基于UDP的网络广播程序
- Qt--基于UDP的网络广播
- 用udp协议通讯示例 UDP实现广播接收回复的例子
- UDP广播
- 将JAVA 项目打包成JAR 并运行
- wp8小钟表
- 【const】用法详解
- Node.js与Restful API
- HTTP POST GET 本质区别详解
- UDP 网络广播通讯
- HDOJ 2512
- 今日事今日毕
- EMACS入门使用
- 链表的创建
- Ubuntu 12.04/12.10 安装崩溃的问题
- 变量、指针、指针的指针,我和这三个家伙的故事。
- 64位的机子上生成了32位的dll
- 拦截API