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

0727,学什么学,周六就应该休息!!!!!

周六就应该休息,一天就忙了两小时也不是我的错喵

目录

UDP的小总结

01:使用select实现一个基于UDP的一对一即时聊天程序。 

1.0 复读机服务器和树洞客户端

2.0 byby不了一点的敬业服务器!!!

今天到此为止!!!!

UDP的小总结

client :  socket -->            sendto / recvfrom --> close
server :  socket --> bind   --> recvfrom /sendtoint sockect (int domain,int type,int protocol);
//domain      AF_INET       AF_INET6
//type        SOCK_STREAM   SOCK_DGAM
//protocol    IPPROTO_TCP   IPPRPTP_UDPssize_t sendto (int sockfd,const void* buff,size_t len,int flags,
const struct sockaddr*dest_addr,socklen_t addrlen);ssize_t recvfrom (int sockfd,const void* buff,size_t len,int flags,
const struct sockaddr*dest_addr,socklen_t addrlen);

01:使用select实现一个基于UDP的一对一即时聊天程序。 

1.0 复读机服务器和树洞客户端
#include <func.h>
//server.c
int main()
{//addrstruct sockaddr_in addr;memset(&addr,0,sizeof(addr));addr.sin_family=AF_INET;addr.sin_port=htons(8082);addr.sin_addr.s_addr=inet_addr("192.168.235.128");socklen_t len=sizeof(addr);//soekct int sofd=socket(AF_INET,SOCK_DGRAM,0);//bindint ret=bind(sofd,(struct sockaddr*)&addr,sizeof(addr));if(ret==-1){};//readfds  old_fds fd_max buff[]fd_set readfds;fd_set old_fds;FD_SET(sofd,&readfds);//stdin server加入监听FD_SET(STDIN_FILENO,&readfds);old_fds=readfds;char buff[4096]={0};int fd_max=sofd;while(1){readfds=old_fds;select(fd_max+1,&readfds,NULL,NULL,NULL);if(FD_ISSET(sofd,&readfds)){ret=recvfrom(sofd,buff,4096,0,NULL,NULL);if(ret<0){};if(strcmp(buff,"byby\n")==0){close(sofd);}printf("----%s\n",buff);}if(FD_ISSET(STDIN_FILENO,&readfds)){memset(buff,0,sizeof(buff));fgets(buff,4096,stdin);ret=sendto(sofd,buff,strlen(buff)+1,0,(struct sockaddr*)&addr,sizeof(struct sockaddr));if(ret<0){};}}return 0;
}
#include <func.h>
//client.c
int main()
{//addrstruct sockaddr_in addr;memset(&addr,0,sizeof(addr));addr.sin_family=AF_INET;addr.sin_port=htons(8082);addr.sin_addr.s_addr=inet_addr("192.168.235.128");socklen_t len=sizeof(addr);//soekct int sofd=socket(AF_INET,SOCK_DGRAM,0);//readfds  old_fds fd_max buff[]fd_set readfds;fd_set old_fds;FD_SET(sofd,&readfds);//stdin server加入监听FD_SET(STDIN_FILENO,&readfds);old_fds=readfds;char buff[4096]={0};int fd_max=sofd;while(1){readfds=old_fds;select(fd_max+1,&readfds,NULL,NULL,NULL);if(FD_ISSET(sofd,&readfds)){recvfrom(sofd,buff,4096,0,NULL,NULL);if(strcmp(buff,"byby\n")==0){close(sofd);}printf("----%s\n",buff);}if(FD_ISSET(STDIN_FILENO,&readfds)){memset(buff,0,sizeof(buff));fgets(buff,4096,stdin);sendto(sofd,buff,strlen(buff)+1,0,(struct sockaddr*)&addr,sizeof(struct sockaddr));}}return 0;
}
2.0 byby不了一点的敬业服务器!!!

#include <func.h>
//client.c
int main()
{//addrstruct sockaddr_in addr;memset(&addr,0,sizeof(addr));addr.sin_family=AF_INET;addr.sin_port=htons(8083);addr.sin_addr.s_addr=inet_addr("192.168.235.128");socklen_t len=sizeof(addr);//soekct int sofd=socket(AF_INET,SOCK_DGRAM,0);//bindint ret=bind(sofd,(struct sockaddr*)&addr,sizeof(addr));if(ret==-1){};//readfds  old_fds fd_max buff[]fd_set readfds;fd_set old_fds;FD_SET(sofd,&readfds);//stdin server加入监听FD_SET(STDIN_FILENO,&readfds);old_fds=readfds;char buff[4096]={0};int fd_max=sofd;struct sockaddr_in cline_addr;socklen_t addr_len;while(1){readfds=old_fds;select(fd_max+1,&readfds,NULL,NULL,NULL);if(FD_ISSET(sofd,&readfds)){ret=recvfrom(sofd,buff,4096,0,(struct sockaddr*)&cline_addr,&addr_len);if(ret<0){};if(strcmp(buff,"byby")==0){close(sofd);}printf("----%s\n",buff);}if(FD_ISSET(STDIN_FILENO,&readfds)){memset(buff,0,sizeof(buff));fgets(buff,4096,stdin);ret=sendto(sofd,buff,strlen(buff)+1,0,(struct sockaddr*)&cline_addr,sizeof(struct sockaddr));if(ret<0){};}}return 0;
}

开心!!!!!!开心!!!!!!!开心!!!!!!! 
723的作业会写了喵!!!!!聪明小辉!!!

今天到此为止!!!!!

相关文章:

0727,学什么学,周六就应该休息!!!!!

周六就应该休息&#xff0c;一天就忙了两小时也不是我的错喵 目录 UDP的小总结 01&#xff1a;使用select实现一个基于UDP的一对一即时聊天程序。 1.0 复读机服务器和树洞客户端 2.0 byby不了一点的敬业服务器&#xff01;&#xff01;&#xff01; 今天到此为止&#x…...

【C#】获取DICOM图像像素的像素值

8位像素深度的像素值 public byte GetGreyValue(int x, int y) {x Math.Min(x, m_nWidth - 1);y Math.Min(y, m_nHeight - 1);unsafe{byte* greyValue (byte*)m_pDicomData.ToPointer() y * m_nWidth x;return *greyValue;} } 16位像素深度的像素值 public ushort GetG…...

k8s多集群管理工具kubecm

文章目录 一、概述二、安装1、官网链接2、各平台安装2.1、MacOS2.2、Linux2.3、Windows 三、实例1、验证2、配置kubecm自动补全&#xff08;选做&#xff09;2.1、Bash2.2、Zsh2.3、fish2.4、PowerShell 3、创建存放kubeconfig文件的目录4、添加到 $HOME/.kube/config4.1、kube…...

通过 WSL 2 在Windows 上挂载 Linux 磁盘

原文查看 曾为了传输或者共享不同系统的文件频繁地在 Windows 和 Linux 系统之间切换&#xff0c;效率过低&#xff0c;所以尝试通过 WSL 2 在Windows 上挂载 Linux 磁盘。 先决条件 需要在Windows 10 2004 及更高版本&#xff08;Build 19041 及更高版本&#xff09;或 Win…...

【C#】在一个给定的宽、高范围内,获取到该多边形内部的所有坐标集合?

问题点 使用C#语言在一个给定的宽、高范围内&#xff0c;获取到该多边形内部的所有坐标集合&#xff1f; 这个多边形可能存在交叉及互相重叠部分 图像的宽、高可以定义为&#xff1a;2000*2000 多边形坐标集合&#xff1a;Point[] polygon_points new Point[] { new Point…...

json的数据结构

JSON 的数据结构 JSON 由两种数据结构组成&#xff1a;对象&#xff08;字典&#xff09;和数组。 一、对象 对象&#xff08;object&#xff09;是由键值对组成的无序集合。 键是字符串&#xff0c;值可以是任何类型&#xff0c;包括对象和数组&#xff1b;对象由一对花括…...

html-docx-js和file-saver实现html导出word

依赖html-docx-js&#xff0c;file-saver&#xff0c;html2canvas import { asBlob } from html-docx-js/dist/html-docx; import { saveAs } from file-saver; import html2Canvas from html2canvas;const handleImageToBase64 (cloneEle) > {let imgElements cloneEle.…...

三维影像系统PACS源码,图像存储与传输系统,应用于医院中管理医疗设备如CT,MR等产生的医学图像的信息系统

PACS&#xff0c;即图像存储与传输系统&#xff0c;是应用于医院中管理医疗设备如CT&#xff0c;MR等产生的医学图像的信息系统。目标是支持在医院内部所有关于图像的活动&#xff0c;集成了医疗设备&#xff0c;图像存储和分发&#xff0c;数字图像在重要诊断和会诊时的显示&a…...

Golang | Leetcode Golang题解之第292题Nim游戏

题目&#xff1a; 题解&#xff1a; func canWinNim(n int) bool {return n%4 ! 0 }...

Redis在SpringBoot中配置

lettuce redis的使用方法有两种&#xff0c;jedis和lecttuce&#xff0c;jedis用的不是很多&#xff0c;下面讲解用lettuce的使用方法。 首先导包&#xff1a; <!--redis依赖--> <dependency><groupId>org.springframework.boot</groupId><artif…...

linux 网络子系统

__netif_receive_skb_core 是 Linux 内核网络子系统中一个非常重要的函数&#xff0c;它负责将网络设备驱动层接收到的数据包传递到上层协议栈进行处理。以下是对该函数的一些关键点的详细解析&#xff1a; 一、函数作用 __netif_receive_skb_core 函数是处理接收到的网络数据…...

JVM:垃圾回收器演进

文章目录 一、演进二、Shenandoah三、ZGC 一、演进 二、Shenandoah Shenandoah是由Red Hat开发的一款低延迟的垃圾收集器&#xff0c;Shenandoah并发执行大部分GC工作&#xff0c;包括并发的整理&#xff0c;堆大小对STW的时间基本没有影响。 三、ZGC ZGC是一种可扩展的低延…...

全新微软语音合成网页版源码,短视频影视解说配音网页版系统-仿真人语音

源码介绍 最新微软语音合成网页版源码&#xff0c;可以用来给影视解说和短视频配音。它是TTS文本转语言&#xff0c;API接口和PHP源码。 这个微软语音合成接口的源码&#xff0c;超级简单&#xff0c;就几个文件搞定。用的是官方的API&#xff0c;试过了&#xff0c;合成速度…...

大语言模型-对比学习-Contrastive Learning

一、对比学习概念 对比学习是一种特殊的无监督学习方法。 旨在通过拉近相关样本的距离并且推远不相关样本的距离&#xff0c;来学习数据表示。 通常使用一种高自由度、自定义的规则来生成正负样本。在模型预训练中有着广泛的应用。 二、对比学习小案例 对比学习主要分为三个…...

C++ 封装的用法

C(七)封装 封装&#xff0c;可以达到&#xff0c;对外提供接口&#xff0c;屏蔽数据&#xff0c;对内开放数据。 权限控制 struct 中所有行为和属性都是 public 的(默认)&#xff0c;此举也是为了 C兼容 C 语言&#xff0c; 因为 C 语言中没有权限的概念。 C中的 class 可以…...

【C++11:异常】

目录 抛异常标准书写格式 抛异常如何执行&#xff1f; 指定抛出异常类型&#xff1a; noexcept 关键字&#xff1a;throw 抛异常标准书写格式 抛异常如何执行&#xff1f; 当212行的异常被抛出&#xff0c;程序会重新返回函数func中&#xff0c;在函数中去寻找catch 语句的…...

Dify中HTTP请求节点的常见操作

HTTP节点包括API请求类型&#xff08;GET、POST、HEAD、PATCH、PUT、DELETE&#xff09;&#xff0c;鉴权类型&#xff08;无、API-Key基础、API-Key Bearer、API-Key自定义&#xff09;&#xff0c;HEADERS键值设置&#xff0c;PARAMS键值设置&#xff0c;BODY&#xff08;non…...

《大语言模型(赵鑫)》知识框图

...

【Android】性能实践—编码优化与布局优化学习笔记

编码优化 使用场景 如果需要拼接字符串&#xff0c;优先使用StringBuffer和StringBuilder进行凭借&#xff0c;他们的性能优于直接用加号进行拼接&#xff0c;因为使用加号连接符会创建多余的对象一般情况下使用基本数据类来代替封装数据类型&#xff08;比如int优于Integer&…...

如何合规与安全地利用专业爬虫工具,构建企业数据竞争优势

摘要&#xff1a; 本文深入探讨了在当今大数据时代&#xff0c;企业如何通过合规且安全的方式运用专业爬虫工具&#xff0c;有效收集并分析海量信息&#xff0c;进而转化为企业独有的数据优势。我们不仅会介绍最佳实践&#xff0c;还会讨论关键技术和策略&#xff0c;帮助企业…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡&#xff08;如 HAProxy、AWS NLB、阿里 SLB&#xff09;发起上游连接时&#xff0c;将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后&#xff0c;ngx_stream_realip_module 从中提取原始信息…...

如何为服务器生成TLS证书

TLS&#xff08;Transport Layer Security&#xff09;证书是确保网络通信安全的重要手段&#xff0c;它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书&#xff0c;可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

Linux-07 ubuntu 的 chrome 启动不了

文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了&#xff0c;报错如下四、启动不了&#xff0c;解决如下 总结 问题原因 在应用中可以看到chrome&#xff0c;但是打不开(说明&#xff1a;原来的ubuntu系统出问题了&#xff0c;这个是备用的硬盘&a…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器&#xff0c;可以帮助网站应对分布式拒绝服务攻击&#xff0c;有效识别和清理一些恶意的网络流量&#xff0c;为用户提供安全且稳定的网络环境&#xff0c;那么&#xff0c;高防服务器一般都可以抵御哪些网络攻击呢&#xff1f;下面…...

免费PDF转图片工具

免费PDF转图片工具 一款简单易用的PDF转图片工具&#xff0c;可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件&#xff0c;也不需要在线上传文件&#xff0c;保护您的隐私。 工具截图 主要特点 &#x1f680; 快速转换&#xff1a;本地转换&#xff0c;无需等待上…...

如何配置一个sql server使得其它用户可以通过excel odbc获取数据

要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据&#xff0c;你需要完成以下配置步骤&#xff1a; ✅ 一、在 SQL Server 端配置&#xff08;服务器设置&#xff09; 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到&#xff1a;SQL Server 网络配…...