当前位置: 首页 > news >正文

TCPIP网络编程(尹圣雨)UDP 轮流收发消息(windows)

端口号写的是 2345

客户端

#include <iostream>
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")using std::cout;
using std::endl;
using std::cin;int main()
{WSADATA wsa;if (WSAStartup(MAKEWORD(2, 2), &wsa) != 0){cout << "startup error" << endl;}sockaddr_in sd;sd.sin_port = htons(2345);sd.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");sd.sin_family = AF_INET;SOCKET sock = socket(PF_INET, SOCK_DGRAM, 0);// connect(sock, (sockaddr *)&sd, sizeof(sd));for (int i = 0; i < 10; ++i){char buf[1024];cout << "请输入文本:" << endl;cin >> buf;int len = sizeof(sd);sendto(sock, buf, strlen(buf), 0, (sockaddr *)&sd, sizeof(sd));len = sizeof(sd);memset(&buf, 0, 1024);recvfrom(sock, buf, 1024, 0,(sockaddr *)&sd, &len);cout << "收到的数据:" << buf<<endl;}getchar();closesocket(sock);WSACleanup();return 0;
}

服务端

#include <iostream>
#include <WinSock2.h>#pragma comment(lib, "ws2_32.lib")using std::cout;
using std::endl;
using std::cin;int main()
{WSADATA wsa;if (WSAStartup(MAKEWORD(2, 2), &wsa) != 0){cout << "WSA Error" << endl;return 0;}sockaddr_in sd;sd.sin_family = AF_INET;sd.sin_port = htons(2345);sd.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");SOCKET sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP);if (sock == INVALID_SOCKET){cout << "socket error" << endl;return 0;}if (bind(sock, (sockaddr *)&sd, sizeof(sd)) == SOCKET_ERROR){cout << "bind error" << endl;return 0;}sockaddr_in clientSd;for (int i = 0; i < 10; ++i){char buf[1024] = "";int len = sizeof(clientSd);recvfrom(sock, buf, 1024, 0, (sockaddr *)&clientSd, &len);cout << buf<<endl;memset(&buf, 0, 1024);cout << "请输入数据:" << endl;cin >> buf;sendto(sock, buf, strlen(buf), 0, (sockaddr *)(&clientSd),sizeof(clientSd));}closesocket(sock);WSACleanup();return 0;
}


http://www.mrgr.cn/news/26793.html

相关文章:

  • 春日教育技术:SpringBoot在线视频教学
  • NVM 安装 + 配置淘宝镜像
  • 【大模型专栏—进阶篇】语言模型创新大总结——“后起之秀”
  • Python 内置的一些数据结构
  • 轧钢测径仪对热轧产线实现温度系数自动修正!
  • 从头开始学MyBatis—02基于xml和注解分别实现的增删改查
  • Springboot项目打war包运行及错误解决
  • 文献速递 | E3泛素连接酶PELI2介导STING信号激活的阈值设定
  • 每日处理250亿个事件,Canva如何应对数据洪流
  • VSCode 离线安装中文语言包
  • NFT Insider #147:Sandbox 人物化身九月奖励上线;Catizen 付费用户突破百万
  • 云服务器拉取docker镜像
  • Qt 实现自定义截图工具
  • 基于STM32的汽车仪表显示系统:集成CAN、UART与I2C总线设计流程
  • 应用程序中的服务器错误怎么办?
  • 成功晋级 | 3本ELSEVIER期刊正式被ESCI收录,最快的录用后2天即可出版
  • 第二篇 第11章 筹资管理
  • Vue3项目中使用bootstrap5
  • 喜报!普罗格入选软件百强企业榜单
  • 灵雀云DevOps:加速应用交付,点燃业务创新引擎