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

(1)udp双向通信(2)udp实现文件复制(3)udp实现聊天室

一.udp双向通信

1.fork进程实现双向通信

【1】head.h

【2】client客户端

(1)父进程从键盘获取字符串

(2)输入quit,发送结束子进程信号

(3)exit退出父进程

(1)子进程接受信息

(2)getppid用于退出父进程

【3】server服务器

注意:在通信前,客户端需要先发一条消息用于服务器获取客户端信息

(1)父进程发送信息,输入quit发送信号结束子进程并退出

(2)子进程接受信息,输入信息获取父进程pid并结束父子进程

2.pthread线程实现udp双向通信

【1】client客户端

注意:定义全局变量sockaddr_in不用向线程传参.

【2】server服务器

同样,服务器需要先获取客户端信息

二,udp实现文件复制

1.client客户端

(1)首先,向服务器传入文件名

(2)读取文件,进行传输

打开新文件并写入

三.udp实现聊天室

1.实现思路梳理

2.head.h

(1)定义结构体msg_t用于存储客户端数据

   type:用于存储客户端状态

   name:用于存储客户端名字

  text:用于存储需要发送的文本

(2)MSG_TYPE分为进入,发送,退出三种状态

3.client客户端

(1)记录状态为进入,获取名字,初始化文本

(2) 发送客户端信息,由服务器接受后向其他客户端发送接入信息

创建线程进行读写

线程1:(1)在读操作里定义结构体用于读取其他客户端信息

(2)读取服务器发送来的其他客户端信息

(3)打印发送人和发送消息

注:定义两个全局变量后,不用向线程传参

线程2:(1)从键盘获取发送消息

(2)

【1】如果是quit就将状态变为QUIT,向服务器发送结构体,服务器读取后向其他客户端发送退出信息,并删除客户端信息

【2】如果是其他消息,向服务器发送,由服务器发送给其他客户端

4.server服务器

(1)定义能接入的客户端的宏为10

(2)定义结构体的数组用于接受这些客户端的信息

(1)接收接入的客户端信息

(2)读取客户端状态

【1】LOGIN接入状态

1.将信息记录在结构体的数组中

2.向其他客户换发送接入信息

注:其他客户端为接入状态,且将存储的地址与客户端进行对比,向除了自己的其他客户端发送信息

【2】CHAT状态

直接发送结构体信息

【3】QUIT状态

(1)向其他客户端发送退出信息

(2)清空客户端结构体信息

相关文章:

  • 解锁数据抓取新高度:Python 分布式爬虫与逆向进阶实战课
  • 详解 scanf 和 printf(占位符、printf、scanf的返回值、printf的输出格式、scanf的输入格式)
  • oracle官网下载各种版本的Java
  • 大白话css第八章前沿技术深度应用、行业影响力塑造以及对CSS未来发展的引领
  • 如何理解数据库的几种事务隔离级别?以及如何理解脏读、不可重复度、幻读?
  • Vue 3 组件库文档化最佳实践:Storybook 自动化文档生成 - 打造专业级组件文档
  • 洛谷 P1601 A+B Problem(高精)详解c++
  • lamp平台介绍
  • 【力扣】136.只出现一次的数字
  • 麒麟V10-SP2-x86_64架构系统下通过KVM创建虚拟机及配置虚机的NAT、Bridge两种网络模式全过程
  • pthon翻译googletrans案例
  • 高级课第五次作业
  • flink和yarn和mpp架构区别
  • 【菜笔cf刷题日常-1600】C. Balanced Stone Heaps(二分求min/max)
  • Linux -- I/O接口,文件标识符fd、file结构体、缓冲区、重定向、简单封装C文件接口
  • MySQL实现文档全文搜索,分词匹配多段落重排展示,知识库搜索原理分享
  • Android 系统开发的指导文档
  • 前端知识一
  • 【Linux】配置hosts
  • C# IEquatable<T> 使用详解
  • 厦门网站制作网页/活动策划
  • 辽宁省网站建设/seo网络推广是干嘛的
  • 慈溪企业网站建设/广州seo服务
  • 网站劫持怎么做/关键词优化是怎样收费的
  • 唐山app开发/seo最新教程
  • python基础教程第二版/东莞seo建站优化哪里好