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

LinuxC++的UDP服务器和客户端通信

服务器

#include<sys/socket.h>
#include<stdio.h>
#include<arpa/inet.h>
#include<unistd.h>
#include<string.h>
int main()
{int ret;int sfd=socket(AF_INET,SOCK_DGRAM,0);if(sfd==-1)perror("socket error");struct sockaddr_in saddr;saddr.sin_port=htons(8888);saddr.sin_family=AF_INET;saddr.sin_addr.s_addr=INADDR_ANY;ret=bind(sfd,(struct sockaddr*)&saddr,sizeof(saddr));if(ret==-1)perror("bind error");char buffer[1024]={'\0'};while(true){struct sockaddr_in caddr;int caddrlen=sizeof(caddr);ret=recvfrom(sfd,buffer,1024,0,(struct sockaddr*)&caddr,(socklen_t*)&caddrlen);if(ret==-1){perror("recvfrom error");break;}else if(ret==0){printf("连接断开\n");break;}else{char ip[30]={'\0'};inet_ntop(AF_INET,&caddr.sin_addr.s_addr,ip,sizeof(ip));printf("从客户端%s:%d收到数据:%s\n",ip,htons(caddr.sin_port),buffer);char sendbuf[50]={'\0'};sprintf(sendbuf,"server recive your data:%s",buffer);ret=sendto(sfd,sendbuf,sizeof(sendbuf),0,(struct sockaddr*)&caddr,caddrlen);if(ret==-1){perror("sendto error");break;}}memset(buffer,0,1024);}close(sfd);return 0;
}

客户端

#include<sys/socket.h>
#include<stdio.h>
#include<arpa/inet.h>
#include<unistd.h>
#include<string.h>
int main()
{int ret;int cfd=socket(AF_INET,SOCK_DGRAM,0);if(cfd==-1)perror("socket error");struct sockaddr_in caddr;caddr.sin_port=htons(8888);caddr.sin_family=AF_INET;ret=inet_pton(AF_INET,"192.168.101.231",&caddr.sin_addr.s_addr);if(ret==-1)perror("inet_pton error");char buffer[1024]={'\0'};int i=0;while(true){char sendbuf[50]={'\0'};sprintf(sendbuf,"this is client:hello world:%d",i);ret=sendto(cfd,sendbuf,sizeof(sendbuf),0,(struct sockaddr*)&caddr,sizeof(caddr));if(ret==-1){perror("sendto error");break;}ret=recvfrom(cfd,buffer,1024,0,NULL,NULL);if(ret==-1){perror("recvfrom error");break;}else if(ret==0){printf("连接断开\n");break;}else{printf("收到了数据:%s\n",buffer);}memset(buffer,0,1024);memset(sendbuf,0,50);sleep(1);}close(cfd);return 0;
}


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

相关文章:

  • 钢索缺陷检测系统源码分享
  • 1×1卷积核【super star 卷积核】
  • 人工智能与机器学习原理精解【21】
  • 图文检索(2):Visual-Linguistic Dependency Encoding for Image-Text Retrieval
  • 计算机网络的性能指标
  • 入门sentinel
  • 利用ClasserLoader来实现jar包加载并调用里面的方法
  • 英飞凌PSoC4000T示例工程
  • 洛谷 P1541 [NOIP2010 提高组] 乌龟棋
  • 机器学习实战—天猫用户重复购买预测
  • 【鸿蒙 HarmonyOS NEXT】组件嵌套滚动:nestedScroll
  • 【重学 MySQL】三十四、加密与解密函数
  • Linux进阶 修改文件所在组
  • 在python中安装HDDM
  • C++_类和对象(下篇)—— 内部类、匿名对象、对象拷贝时的编译器优化
  • 【资料分析】刷题日记1
  • 基于stm32的四旋翼无人机控制系统设计系统设计与实现
  • 【python】30、矩阵加法 tensor.sum
  • 【Python报错已解决】 Requests.exceptions.ProxyError: HTTPSConnectionPool
  • 9.18 微信小程序开发笔记