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

linux的UDP通讯方式

linux的UDP通讯demo ,chatgpt 生成的,记录下demo。
server.c

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>#define PORT 8000
#define MAXLINE 1024int main() {int sockfd;struct sockaddr_in servaddr, cliaddr;char buff[MAXLINE];int n;// Creating socket file descriptorif ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {perror("socket creation failed");exit(EXIT_FAILURE);}memset(&servaddr, 0, sizeof(servaddr));memset(&cliaddr, 0, sizeof(cliaddr));// Filling server informationservaddr.sin_family = AF_INET;servaddr.sin_addr.s_addr = INADDR_ANY;servaddr.sin_port = htons(PORT);// Binding the socket with the server addressif (bind(sockfd, (const struct sockaddr *)&servaddr, sizeof(servaddr)) < 0) {perror("bind failed");exit(EXIT_FAILURE);}int len = sizeof(cliaddr);while (1) {n = recvfrom(sockfd, (char *)buff, MAXLINE, MSG_WAITALL, (struct sockaddr *)&cliaddr, &len);buff[n] = '\0';printf("Client : %s\n", buff);sendto(sockfd, (const char *)buff, strlen(buff), MSG_CONFIRM, (const struct sockaddr *)&cliaddr, len);printf("Server : %s\n", buff);}close(sockfd);return 0;
}

client.c

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>#define PORT 8000
#define MAXLINE 1024int main() {int sockfd;char buffer[MAXLINE];struct sockaddr_in servaddr;int len;// Creating socket file descriptorif ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {perror("socket creation failed");exit(EXIT_FAILURE);}memset(&servaddr, 0, sizeof(servaddr));// Filling server informationservaddr.sin_family = AF_INET;servaddr.sin_port = htons(PORT);servaddr.sin_addr.s_addr = INADDR_ANY;int n;while (1) {printf("Enter the message: ");memset(buffer, 0, sizeof(buffer));fgets(buffer, sizeof(buffer), stdin);sendto(sockfd, (const char *)buffer, strlen(buffer), MSG_CONFIRM, (const struct sockaddr *)&servaddr, sizeof(servaddr));printf("Message sent.\n");n = recvfrom(sockfd, (char *)buffer, MAXLINE, MSG_WAITALL, (struct sockaddr *)&servaddr, &len);buffer[n] = '\0';printf("Server : %s\n", buffer);}close(sockfd);return 0;
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 暑期破防实录——捡漏腾讯
  • 【多线程】乐观/悲观锁、重量级/轻量级锁、挂起等待/自旋锁、公平/非公锁、可重入/不可重入锁、读写锁
  • 第三次北漂,入职UE
  • Flink 常见问题汇总:反压积压,checkpoint报错,窗口计算,作业报错,无产出,流批不一致,调优等。
  • EasyX自学笔记3(割草游戏2)
  • CCF编程能力等级认证GESP—C++7级—20240629
  • C#复习之封装_构造函数,析构函数,垃圾回收
  • 技术周总结 08.05-08.11周日(scala git回滚)
  • Android Basis - 密钥和ID认证
  • 代理IP如何助力社交媒体数据挖掘
  • leetcode26_删除有序数组中的重复项
  • 时序数据库TDengine和QuestDB对比
  • 微服务-实现nacos的集群和Gateway网关的实现、认证校验、解决跨域
  • 驱动开发系列10 - Linux Graphics 图形栈介绍
  • 非负数(0和正数) 限制最大值且保留两位小数,在elementpuls表单中正则自定义验证传更多参数
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • Computed property XXX was assigned to but it has no setter
  • Fabric架构演变之路
  • JAVA SE 6 GC调优笔记
  • JS学习笔记——闭包
  • oldjun 检测网站的经验
  • vue-cli在webpack的配置文件探究
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 程序员该如何有效的找工作?
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 深入浅出webpack学习(1)--核心概念
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 《码出高效》学习笔记与书中错误记录
  • Android开发者必备:推荐一款助力开发的开源APP
  • UI设计初学者应该如何入门?
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • #HarmonyOS:Web组件的使用
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (~_~)
  • (1)无线电失控保护(二)
  • (1)虚拟机的安装与使用,linux系统安装
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (JS基础)String 类型
  • (备忘)Java Map 遍历
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (论文阅读30/100)Convolutional Pose Machines
  • (南京观海微电子)——示波器使用介绍
  • (十)Flink Table API 和 SQL 基本概念
  • (算法二)滑动窗口
  • (五)activiti-modeler 编辑器初步优化
  • (五)网络优化与超参数选择--九五小庞
  • **CI中自动类加载的用法总结
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .htaccess配置常用技巧
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .Net 基于MiniExcel的导入功能接口示例
  • .NET 指南:抽象化实现的基类
  • .NET和.COM和.CN域名区别
  • [20160807][系统设计的三次迭代]