发送端向接收端发送数据,ip地址和端口号要与接收端一致

cpp_UDP客户端,发送端

#include <winsock2.h>
#include <WS2tcpip.h>
#include <iostream>
using namespace  std;//添加动态库的lib
#pragma comment(lib, "ws2_32.lib")int main() {SOCKET m_Socket;SOCKADDR_IN m_RemoteAddress; //远程地址int m_RemoteAddressLen;// socket环境WSADATA  wsaData;if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) {cout << "WSAStartup error:" << GetLastError() << endl;return false;}// socket对象m_Socket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);if (m_Socket == INVALID_SOCKET){closesocket(m_Socket);m_Socket = INVALID_SOCKET;return false;}// 远端地址const char* ip = "172.22.64.148";int port = 9800;m_RemoteAddress.sin_family = AF_INET;m_RemoteAddress.sin_port = htons(port);m_RemoteAddressLen = sizeof(m_RemoteAddress);inet_pton(AF_INET, ip, &m_RemoteAddress.sin_addr);// 接收和发送char recvBuf[1024] = { 0 };char sendBuf[1024] = "Nice to meet you!我的";while (1) {int sendLen = sendto(m_Socket, sendBuf, strlen(sendBuf), 0, (sockaddr*)&m_RemoteAddress, m_RemoteAddressLen);if (sendLen > 0) {std::printf("发送到远程端连接, 其ip: %s, port: %d\n", inet_ntoa(m_RemoteAddress.sin_addr), ntohs(m_RemoteAddress.sin_port));cout << "发送到远程端的信息: " << sendBuf << endl;}int recvLen = recvfrom(m_Socket, recvBuf, 1024, 0, NULL, NULL);if (recvLen > 0) {std::printf("接收到一个连接, 其ip: %s, port: %d\n", inet_ntoa(m_RemoteAddress.sin_addr), ntohs(m_RemoteAddress.sin_port));cout << "接收到一个信息: " << recvBuf << endl;}}closesocket(m_Socket);WSACleanup();return true;
}

cpp_UDP服务端,接收端


#include <winsock2.h>
#include <WS2tcpip.h>
#include <iostream>using namespace  std;//添加动态库的lib
#pragma comment(lib, "ws2_32.lib")int main() {SOCKET m_Socket;SOCKADDR_IN m_BindAddress;   //绑定地址SOCKADDR_IN m_RemoteAddress; //远程地址int m_RemoteAddressLen;// socket环境WSADATA  wsaData;if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) {cout << "WSAStartup error:" << GetLastError() << endl;return false;}// socket对象m_Socket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);if (m_Socket == INVALID_SOCKET){closesocket(m_Socket);m_Socket = INVALID_SOCKET;return false;}// 绑定占用<ip, port>const char* ip = "172.22.64.42";int port = 9800;m_BindAddress.sin_family = AF_INET;m_BindAddress.sin_addr.S_un.S_addr = inet_addr(ip);m_BindAddress.sin_port = htons(port);auto ret = bind(m_Socket, (sockaddr*)&m_BindAddress, sizeof(SOCKADDR));if (ret == SOCKET_ERROR){closesocket(m_Socket);m_Socket = INVALID_SOCKET;return false;}// 接收和发送char recvBuf[1024] = { 0 };char sendBuf[1024] = "Nice to meet you, too!";m_RemoteAddressLen = sizeof(m_RemoteAddress);std::printf("已设置绑定占用的连接, 其ip: %s, port: %d\n", inet_ntoa(m_BindAddress.sin_addr), ntohs(m_BindAddress.sin_port));while (1) {int recvLen = recvfrom(m_Socket, recvBuf, 1024, 0, (sockaddr*)&m_RemoteAddress, &m_RemoteAddressLen);if (recvLen > 0) {std::printf("接收到一个连接, 其ip: %s, port: %d\n", inet_ntoa(m_RemoteAddress.sin_addr), ntohs(m_RemoteAddress.sin_port));cout << "接收到一个信息: " << recvBuf << endl;}int sendLen = sendto(m_Socket, sendBuf, strlen(sendBuf), 0, (sockaddr*)&m_RemoteAddress, m_RemoteAddressLen);if (sendLen > 0) {cout << "发送到远程端的信息: " << sendBuf << endl;}}closesocket(m_Socket);WSACleanup();return true;
}

C++实现简单UDP通信相关推荐

  1. Java网络编程之简单UDP通信

    UDP是一种基于不可靠连接的协议,它无法保证传输的数据能不丢失不重复到达,尽自己努力传输,但是不会重传,不需要建立连接,则它所需要的时间会很快.它是基于数据报为单位进行传输的,不想TCP是一种基于流进 ...

  2. UDP通信——使用python实现简单的UDP通信

    UDP通信--使用python实现简单的UDP通信 UDP 的英文单词是User Datagram Protocol,缩写为UDP,是一种用户数据报协议,又称为用户数据报文协议,是一种报文的协议,是一 ...

  3. qt 实现UDP通信简单案例

    实现效果 实现功能 创建两个界面,可以通过udp进行通信,并显示通信内容. 界面部分由代码实现,并使用qss简单美化. udp通信由创建套接字,绑定端口号,发送和接收数据函数完成. 代码实现 创建第一 ...

  4. Qt中UDP通信的简单示例

    udp通信分为发送端和接收端,通信步骤可以分为以下: 接收端: 创建QUdpSocket对象.在.h文件中添加类的前置声明,定义该类的指针,在.cpp的构造函数中定义指向该类的指针. bind().绑 ...

  5. Socket简单学习之UDP通信

    UDP不可靠通信,不建立连接,只发送一次数据,不管对方是否接收 服务器端 using System; using System.Collections.Generic; using System.Li ...

  6. C语言网络编程:UDP通信实现

    文章目录 UDP的特点: UDP的用途 UDP编程模型 UDP通信代码实现 UDP的特点: udp 协议是一种无链接的不可靠传输协议,且UDP每次发送到分组数据大小都是固定的,它的主要特点如下: 不建 ...

  7. 网络编程 UDP通信的过程 TCP通信过程 多线程文件上传

    网络概述 协议 在网络之间传出数据时需要按照指定的标准来传输,标准中规定了数据的格式.大小.传输的方式.传输速率.形成统一规范->按照规范开发的代码->协议(应用层.传输层.网络层.链路层 ...

  8. 一个udp用户数据报的数据字段为8192_基于FPGA的千兆网UDP通信分析

    千兆网UDP通信 以太网帧格式 图8‑12 以太网帧格式 表8‑5 以太网帧格式说明 UDP协议分析 为什么UDP协议在FPGA实现时很受欢迎,最主要一个原因就是简单,简答到什么地步呢?UDP协议只是 ...

  9. Java21-day12【网络编程(网络编程入门(ip地址、端口、协议、InetAddress)、UDP通信程序、TCP通信程序)】

    视频+资料[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg   提取码:zjxs] Java基础--学习笔记(零起点打开java世界的大门)--博 ...

最新文章

  1. 计算机应用a级考试,四川省职称计算机应用能力考试A级模拟题
  2. ASPXspy 2.0
  3. netconf 网络配置协议 简介
  4. 云平台管理与部署---虚拟化平台-----KVM
  5. Android中的Fragment
  6. JS基础之undefined与null的区别
  7. auot lisp 选择集处理_离散量的计算机处理64_1Cvs
  8. VTK:相互作用之ImageClip
  9. [Qt教程] 第29篇 XML(三)Qt中的SAX
  10. 浙江省第6届程序设计竞赛结题报告汇总 zoj3202-3212
  11. .Net Excel 部分操作
  12. esmini LongSpeedAction修改
  13. seaborn 0.9 中文文档翻译完成 | ApacheCN
  14. Spring : @Value注解
  15. python按照日期筛选数据_python – 按时间戳列筛选/选择pandas dataframe行
  16. 专业技能与职业素养报告计算机,学生专业技能与职业素养专题报告怎么写
  17. 清明祭娭毑_原水_新浪博客
  18. lan和adsl是什么信号_路由器上的adsl是什么意思【图】
  19. linux bin目录在哪,Linux 基础知识 /bin,/sbin,/usr/sbin,/usr/bin 目录 区别详解
  20. ajax读取文件的小总结

热门文章

  1. 2019中级软件设计师上午真题答案及下午答案获取方式
  2. 塔望食业洞察|鹰嘴豆市场发展及应用趋势研究
  3. docker 搭建禅道
  4. java作业:根据三角形的3条边长,判断其是直角、钝角,还是锐角三角形。
  5. 每个孩子都是一朵独一无二的风信子(轉載,不知何處)
  6. Python之Urllib使用
  7. 全面解析均衡效果器之一:EQ原理
  8. 1.html基础标签
  9. 2.2 点亮第一个发光二极管
  10. Java之xml解析(Sax方式)