UDP HelloWord
#include <winsock2.h>
#pragma comment (lib,"ws2_32")
//注释的为UDP的代码,方便对比
//流程
//TCP:WSAStarup socket connect recv/send closesocket WSACleanup
int main(int argc,char* argv[])
{
WSADATA wsaData;
WSAStartup(MAKEWORD(2,2),&wsaData);
//SOCKET s = socket(PF_INET,SOCK_STREAM,IPPROTO_TCP);
SOCKET s = socket(PF_INET,SOCK_DGRAM,IPPROTO_UDP);
sockaddr_in addr;
addr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
addr.sin_family = PF_INET;
addr.sin_port = htons(827);
//connect(s,(SOCKADDR*)&addr,sizeof(SOCKADDR));
sendto(s,"hello world server UDP",strlen("hello world server UDP") + sizeof(char),
0,(SOCKADDR*)&addr,sizeof(SOCKADDR));
sockaddr_in clientAddrUDP;
char szBuffer[MAXBYTE] = {0};
int len = sizeof(SOCKADDR);
//recv(s,szBuffer,MAXBYTE,NULL);
recvfrom(s,szBuffer,MAXBYTE,0,(SOCKADDR*)&clientAddrUDP,&len);
printf("szBuffer = %s \r\n",szBuffer);
closesocket(s);
WSACleanup();
return 0;
}
//注释的为UDP的代码,方便对比
//TCP::WSAStartup socket bind listen accept send/recv closesocket WSACleanup
#include <winsock2.h>
#include <stdio.h>
#pragma comment (lib,"ws2_32")
int main(int argc , char* grgv[])
{
WSADATA wsaData;
WSAStartup(MAKEWORD(2,2),&wsaData);
//SOCKET s = socket(PF_INET,SOCK_STREAM,IPPROTO_TCP);
SOCKET s = socket(PF_INET,SOCK_DGRAM,IPPROTO_UDP);
sockaddr_in addr;
addr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
addr.sin_port = htons(827);
addr.sin_family = PF_INET;
bind(s,(SOCKADDR*)&addr,sizeof(SOCKADDR));
//listen(s,1);
SOCKADDR clientAddr;
int nSize = sizeof(SOCKADDR);
//SOCKET clientSock;
char buf[MAXBYTE] = {0};
int len = sizeof(SOCKADDR);
recvfrom(s,buf,MAXBYTE,0,(SOCKADDR*)&clientAddr,&len);
printf("%s \r\n",buf);
//clientSock = accept(s,(SOCKADDR*)&clientAddr,&nSize);
//send(clientSock,"hello client \r\n",strlen("hello client \r\n" + sizeof(char)),NULL);
sendto(s,"hello world client UDP",strlen("hello world client UDP") + sizeof(char),
0,(SOCKADDR*)&clientAddr,sizeof(SOCKADDR));
//closesocket(clientSock);
closesocket(s);
WSACleanup();
return 0;
}
UDP HelloWord的更多相关文章
- python笔记8 socket(TCP) subprocess模块 粘包现象 struct模块 基于UDP的套接字协议
socket 基于tcp协议socket 服务端 import socket phone = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 买 ...
- Node.js:dgram模块实现UDP通信
1.什么是UDP? 这里简单介绍下,UDP,即用户数据报协议,一种面向无连接的传输层协议,提供不可靠的消息传送服务.UDP协议使用端口号为不同的应用保留其各自的数据传输通道,这一点非常重要.与TCP相 ...
- 高性能 TCP/UDP/HTTP 通信框架 HP-Socket v4.1.1
HP-Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP/HTTP 通信系统,提供 C/ ...
- TODO:Golang语言TCP/UDP协议重用地址端口
TODO:Golang语言TCP/UDP协议重用地址端口 这是一个简单的包来解决重用地址的问题. go net包(据我所知)不允许设置套接字选项. 这在尝试进行TCP NAT时尤其成问题,其需要在同一 ...
- 利用Docker技术实现UDP广播效果(网络编程python版)
docker的安装见官方文档 我使用的系统为Ubuntu16.04 Ubuntu系统安装docker文档地址:https://docs.docker.com/engine/installation/l ...
- 【Win 10 应用开发】UDP广播
我们知道,对于UDP协议的通信,除了可以用来聊天外,可以发送广播数据.只要向广播地址的某个端口发送数据就可以进行广播,子网中只要监听该端口的socket就能收到广播消息. 最简单的方法就是向255.2 ...
- 高性能 TCP/UDP/HTTP 通信框架 HP-Socket v4.1.2
HP-Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP/HTTP 通信系统,提供 C/ ...
- 高性能 TCP/UDP/HTTP 通信框架 HP-Socket v4.0.1
HP-Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP/HTTP 通信系统,提供 C/ ...
- 高性能 TCP & UDP 通信框架 HP-Socket v3.5.3
HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...
随机推荐
- IOS开发 xcode报错之has been modified since the precompiled header was built
转载的文章 很实用 IOS开发xcode报错之has been modified since the precompiled header was built 今天做百度地图的时候第一次发现下面错误 ...
- iOS- 自定义UIView (测试block和代理)
#import <UIKit/UIKit.h> typedef void(^compeletionHandler) (NSInteger selectButtonIndex); @clas ...
- [Java] SSH框架笔记_框架分析+环境搭建+实例源码下载
首先,SSH不是一个框架,而是多个框架(struts+spring+hibernate)的集成,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活.易于扩展的多层Web应用程序. 集成SSH框 ...
- [Java] JAVA程序员您需要学习的25个标准
(1) 你需要精通面向对象分析与设计(OOA/OOD).涉及模式(GOF,J2EEDP)以及综合模式.你应该了解UML,尤其是class,object,interaction以 及statediagr ...
- 新手教程之使用Xib自定义UITableViewCell
新手教程之使用Xib自定义UITableViewCell 前言 首先:什么是UITableView?看图 其次:什么是cell? 然后:为什么要自定cell,UITableView不是自带的有cell ...
- oracle PL/SQL(procedure language/SQL)程序设计之函数+过程+包
匿名PL/SQL块回顾 DECLARE (可选) 定义在PL/SQL块中要使用的对象BEGIN (必须) 执行语句EXCEPTION (可选) 错误处理语句END; (必须)匿名块( ...
- codeforces 653D D. Delivery Bears(二分+网络流)
题目链接: D. Delivery Bears time limit per test 2 seconds memory limit per test 256 megabytes input stan ...
- css样式编辑
1.剪切: clip:rect(a,b,c,d); a参数:从顶部开始剪切,多少参数表示腰间切多少: b参数:从右边开始剪切,用减法来计算要剪去的多少:(最大的宽度-b参数 = 剪去的参数) c参数: ...
- POJ1064
#include <iostream> #include <iomanip> #include <cmath> using namespace std; int N ...
- Part 53 to 55 Talking about Reflection in C#
Part 53 Reflection in C# Part 54 Reflection Example here is the code private void btnDiscover_Click( ...