1.简单的建立 UDP 传输
来源:互联网 发布:财务d6软件好不好 编辑:程序博客网 时间:2024/06/05 01:10
接收端:
接收信息并打印来源IP和端口
#define _WINSOCK_DEPRECATED_NO_WARNINGS#include <WinSock2.h>//接收端#include <iostream>using namespace std;#pragma comment(lib,"ws2_32.lib")enum {PORT = 8888};//设置端口为8888int main() {WSADATA wd;WSAStartup(0x0202,&wd);//目前最高是2.2版本SOCKET sock = socket(AF_INET,SOCK_DGRAM,0);//两种:UDP,TCPif (INVALID_SOCKET == sock) {cout << "创建socket套接字(句柄)时出错: " << WSAGetLastError() << endl;return -1;}sockaddr_in sa = { 2 };//地址信息结构体:IP和窗口。//sockaddr sa = {2}; //旧版的,sockaddr_in是新版的sa.sin_port = htons(PORT);sa.sin_addr.S_un.S_addr = 0;//inet_add("192.168.1.1");int n = bind(sock,(sockaddr *)&sa,sizeof(sa));char s[2048];//缓冲区,2048个可任意设置,别太小n = recv(sock, s, sizeof(s), 0);if (SOCKET_ERROR == n) {cout << "接收数据时出错:" << WSAGetLastError() << endl;return -1;}sockaddr_in from;//目的为了获取其地址 具体可查recvfrom函数int nLen = sizeof(from);while (true)//一直接收{char s[2048] = {0};n = recvfrom(sock,s,sizeof(s),0,(sockaddr *)&from,&nLen);s[n] = 0;cout << "IP:" << inet_ntoa(from.sin_addr) << " PORT: " << htons(from.sin_port) << endl;//信息反转输出信息来源IP地址和端口cout << s << endl;}}
发送端:
#define _WINSOCK_DEPRECATED_NO_WARNINGS#include <iostream>//发送端#include <WinSock2.h>#pragma comment(lib,"ws2_32.lib")enum { PORT = 8887 };//设置端口int main(){using namespace std;WSADATA wd;WSAStartup(0x0202, &wd);//目前最高是2.2版本SOCKET sock = socket(AF_INET, SOCK_DGRAM, 0);//两种:UDP,TCPif (INVALID_SOCKET == sock){cout << "创建socket套接字(句柄)时出错: " << WSAGetLastError() << endl;return -1;}sockaddr_in sa = { 2 };//地址信息结构体:IP和窗口。sa.sin_port = htons(0);//0代表系统自动找一个可用端口sa.sin_addr.S_un.S_addr = 0;//inet_addr("192.168.1.1");bind(sock,(sockaddr*)&sa,sizeof(sa));//绑定sockaddr_in to = {2};sa.sin_port = htons(8888);//对方的端口char sIP[20], s[2048];//定义IP和发送数据的长度。while(true){cout << "请输入接收端的IP地址:";cin >> sIP;cin.get();//读取输入sIP后的一个换行符cout << "请输入要发送的内容:";//fflush(stdin);gets_s(s,sizeof(s));//cin.getline(s,2047);sa.sin_addr.S_un.S_addr = inet_addr(sIP); //inet_addr("192.168.1.1");//对方的IP地址sendto(sock, s, strlen(s), 0, (sockaddr*)&sa, sizeof(sa));//注意这里的(sockaddr*)&sa 强制转换}return 0;}
阅读全文
0 0
- 1.简单的建立 UDP 传输
- 黑马程序员--建立一个Udp传输服务进行数据的传输和接收
- Android的TCP和UDP传输 简单程序
- 知识点拾遗:UDP传输数据最简单的java实现
- udp的字符传输
- UDP的传输功能
- UDP的传输功能
- 基于socket的TCP和UDP通讯的简单建立
- 第二章 传输层:TCP、UDP和SCTP(2)—TCP连接的建立和终止
- UDP传输图片的尝试
- 可靠UDP传输的实现
- udp传输文件的服务器端
- udp传输文件的客户端
- 基于udp的传输通信
- 基于UDP协议的简单基本视频传输程序的编写
- 基于UDP协议的简单基本视频传输程序的编写
- 基于UDP协议的简单基本视频传输程序的编写
- c语言实现简单的udp传输( c/s 模型)
- 将项目导入eclipse中出现的jsp页面报错解决
- ONOS编程系列(一)之简单应用开发
- 添加图片水印
- 【LeetCode】575 Distribute Candies
- aop技术
- 1.简单的建立 UDP 传输
- 神器Ngrok映射外网
- 案例——天气预报 菜鸟级别的我
- python爬虫(threading.Condition())
- 厦门蓝天怎么样?
- 2018考研政治——马原2
- 6.求int型正整数在内存中存储时1的个数
- C语言字符串处理函数
- PHP删除HTMl标签的解决方法