UDP+TCP
一、UDP协议
1.recvfrom:recvform(int sockfd,void *buf,size_t len,int flags,struct sockaddr *src_addr,socklen_t *addrlen);
参数:socket的fd; 保存数据的空间地址 ; 空间大小;
默认接收方式(默认阻塞)MSG_DONTWAIT不阻塞方式 没有东西就等待
用来保存发送方的地址信息;表示发送方发送实际的地址信息大小;
(如果不关系发送方信息,则后两个参数可以写为NULL)
成功返回接收到的字节数 失败返回-1
1)inet_ntoa()将网络的字节序变成字符串类型
2)ntohs()将网络的端口转换成主机号
3)当socket创建后没有地址绑定,bind就是绑定地址
2.bind:int bind(int sockfd,const struct sockaddr *addr,socklen_t addrlen);
功能:如果在服务端调用,则表示将参数1相关的文件描述符与参数2指定的接口地址关联
用于从该接口接收数据,若在客户端,则表示将数据从参数1所在的描述符中取出并
从参数2所在接口设备发送出去(一般客户端可以省略)
参数:sockfd 通过socket函数创建的文件描述符
套接字 id my_addr 是物理接口的结构体指针
客户端可以绑定地址,但一般不会绑定
如果服务器没有绑定地址,那么客户端会找不到
二、TCP

1.客户端过程:
1)建立连接:socket------bind(可选)------connect(发起连接)
connect:int connect(int sockfd,const struct sockaddr *addr,socklen_t addrlen)
参数:sockfd 本地创建的套接字
addr 远程目标主机的地址信息
addrlen 地址信息的长度
成功返回0 失败返回-1
2)通信过程:read-----write------close
2.服务器过程:
1)建立连接:socket------bind------listen------accept
2)通信过程:read-----write------close
3.TCP连接建立
1)TCP三次握手(建立连接)
2)TCP四次握手(断开链接)
4.listen :int listen(int sockfd,int backlog)反应监听那个套接字并且建立成功之后返回新的套接字
参数:当前套接字 同时监听的个数
成功返回新的套接字 失败返回-1
listen会标记一下被动的socket(这个socket被用来接收到来的接受请求)
有两个socket:一是监听的socket,二是处理建立连接的socket
相关文章:
UDP+TCP
一、UDP协议 1.recvfrom:recvform(int sockfd,void *buf,size_t len,int flags,struct sockaddr *src_addr,socklen_t *addrlen); 参数:socket的fd; 保存数据的空间地址 ; 空间大小; 默认接收方式(默认阻塞…...
分页查询面试记录和面试详情
文章目录 1.分页查询面试记录1.req和vo1.InterviewHistoryReq.java2.InterviewHistoryVO.java 2.InterviewController.java3.service1.InterviewHistoryService.java2.InterviewHistoryServiceImpl.java 4.测试 2.查询面试详情1.InterviewQuestionHistoryVO.java2.InterviewCon…...
Oracle 同义词SYNONYM 的实战使用
Oracle中的同义词(SYNONYM)是一种数据库对象,它为其他数据库对象(如表、视图、序列、存储过程、函数等)提供了一个别名。这个别名可以在SQL语句中代替原始对象的名称,从而简化查询和引用,提高数…...
实验11-1-8 查找子串
本题要求实现一个字符串查找的简单函数。 函数接口定义: char *search( char *s, char *t );函数search在字符串s中查找子串t,返回子串t在s中的首地址。若未找到,则返回NULL。 输入样例1: The C Programming Language ram输出样…...
Git存储库添加空目录-添加占位文件
Git本身并不会跟踪和管理空目录,它只会记录和管理文件的变化。因此,在操作空目录时,我们需要借助一些技巧来实现我们的需求。通过添加一个空的.gitignore或.gitkeep文件或添加一个占位文件,我们可以欺骗Git,并使其将空…...
基于x86 平台opencv的图像采集和seetaface6的人脸识别功能
目录 一、概述二、环境要求2.1 硬件环境2.2 软件环境三、开发流程3.1 编写测试3.2 配置资源文件3.2 验证功能一、概述 本文档是针对x86 平台opencv的图像采集和seetaface6的人脸识别功能,opencv通过读取本地图像,将采集的本地图像送给seetaface6的人脸识别模块从而实现人脸识…...
Git 的基本使用
1.创建 Git 本地仓库 仓库是进⾏版本控制的⼀个⽂件⽬录。我们要想对⽂件进⾏版本控制,就必须先创建⼀个仓库出来,例如下面代码创建了gitcode_linux的文件夹,之后再对其进行初始化。创建⼀个 Git 本地仓库对应的命令为 git init ,…...
如何解决 Cloudflare | 使用 Puppeteer 和 Node.JS
我认为,现在自动化任务越多,越能体现它们的价值,因此挑战也变得更加明显和困难。例如,Cloudflare 目前提供了强有力的安全措施来保护网站免受所有形式的自动化工具的侵扰。 但对于从事自动化项目(如网络爬虫、数据提取…...
笔记redis
Redis 介绍 Redis(Remote Dictionary Server)是用C语言开发的一个基于内存的键值对数据库 所有数据都在内存中,访问速度非常快:读的速度是110000次/s,写的速度是81000次/s适合存储热点数据(商品、新闻资…...
Django 后端架构开发:手机与邮箱验证码接入、腾讯云短信SDK和网易邮箱
Django 后端架构开发:手机与邮箱验证码接入、腾讯云短信SDK和网易邮箱接入 🌟 手机短信与邮箱短信验证码的应用场景 在现代应用中,短信和邮箱验证码是用户验证和安全管理的关键组成部分。它们广泛应用于注册、登录、找回密码等场景…...
RAID 方案比较
RAID(Redundant Array of Independent Disks)技术用于将多个磁盘驱动器组合成一个逻辑单元,以提高性能、可靠性或两者兼顾。以下是常见 RAID 级别的比较: RAID 0(条带化) 磁盘数量:最少 2 块可…...
零成本搭建个人 APP 和小程序后台
前言 前面也说了,通过 GitHub PagesGitHub Actions 只是解决了动态数据展示,但是要零成本得完成将用户信息存储下来,并实现数据交互呢? 我开始是想用云文档,种种原因,我还是希望有个自己能二次修改的后台…...
LCP 633 平方数之和 [leetcode - 8]
最近是在研究双指针啊,leetcode刷的题都是这方面的。都记录在最近的文章里,大家有兴趣可以去我主页看看 LCP633 平方数之和 给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 b2 c 。 示例 1: 输入&…...
c语言试题及答案
1. 一个C程序的组成部分可以是( )。 A) 一个主函数和一至若干个其他函数 B) 一至若干个主函数 C) 一个主程序和一至若干个其他函数 D) 一个主程序和一至若干个子程序 2. 一个C程序的执行是从( )。 (A)本程序的main函数开始,到main函数结束 (B)本程序文件的第一个函…...
python实现链表
什么是链表 链表是由一系列节点组成的元素集合。每个节点包含两部分,数据域item和指向下一个节点的指针next。通过节点之间的相互连接最终串联成一个链表。 python实现一个简单链表 我们可以用python实现一个超级简单的链表 class node:# 初始化数据def __init_…...
Linux Shell 编程基础入门(一)
😀前言 本篇博文是关于自动化工具Shell 编程的基本介绍,希望你能够喜欢 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是我的动…...
大白话讲微服务的灾难性雪崩效应
讲在前面,为什么微服务需要有熔断等策略呢?今天我们用大白话来讲讲微服务的灾难性雪崩效应,熔断策略就是解决雪崩效应的有效解决方案。 什么是灾难性雪崩效应? 假设我们有两个访问量比较大的服务A和B,这两个服务分别依…...
配置 K3s 访问私有镜像仓库
1.修改 K3s 配置文件 1)对于较新的 K3s 版本,你可以通过编辑 K3s 的配置文件来指定镜像仓库。编辑 /etc/rancher/k3s/config.yaml 文件(如果不存在则需要创建),添加或修改以下配置: # /etc/rancher/k3s/config.yaml …...
数学建模之数据分析【七】:对Pandas DataFrame 进行切片
文章目录 一、切片简介二、创建Pandas数据框三、使用iloc进行切片3.1 对行进行切片3.2 对列进行切片3.3 Dataframe选中特定单元格 四、使用loc创建切片4.1 使用Python对Dataframe中的行进行切片4.2 指定单元格 五、在Python中使用布尔条件六、结论 对 Pandas DataFrames 进行切…...
删除 Docker 容器的日志文件
删除 Docker 容器的日志文件可以帮助释放磁盘空间。以下是步骤: 1、查找日志文件路径: Docker 容器的日志通常存储在 /var/lib/docker/containers/<container_id>/ 目录下。日志文件通常名为 container_id-json.log。 通过以下命令找到日志文件的位置: docker ins…...
使用 Alertmanager 配置智能告警
在微服务与云原生架构盛行的当下,系统监控与告警管理成为保障业务稳定性的关键环节。Alertmanager作为Prometheus生态中的核心告警组件,通过灵活的配置和智能路由策略,能够将海量告警转化为精准的行动指令,帮助运维团队快速响应问…...
【CANNBot学习周】4.13~4.16入门课程来袭
经历了上一期“CANNBot发布:畅享算子开发新体验”,相信你对解锁智能化昇腾CANN算子开发已经跃跃欲试。 CANNBot学习周入门课程来袭,包含4门从易到难的实操课程,带你从 0 到 1 掌握核心技能!课程覆盖Ascend C、PyPTO和…...
Springboot 实现多数据源(PostgreSQL 和 SQL Server)连接倩
一、环境准备 Free Spire.Doc for Python 是免费 Python 文档处理库,无需依赖 Microsoft Word,支持 Word 文档的创建、编辑、转换等操作,其中内置的 Markdown 解析能力,能高效实现 Markdown 到 Doc/Docx 格式的转换,且…...
EtherCAT同步模式全解析:从Free Run到DC同步,如何为你的伺服系统(如清能德创)选择最佳时钟源?
EtherCAT同步模式决策指南:从Free Run到DC同步的时钟源选型策略 在工业自动化系统中,毫秒级的同步误差可能导致机械臂轨迹偏移、多轴联动失步,甚至引发安全事故。作为实时以太网协议的标杆,EtherCAT提供了三种同步模式与三种时钟源…...
2026最权威的六大AI科研工具实测分析
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 于学术写作范畴之内,论文AI工具正一步一趋成为研究者的关键辅助方式,…...
别让行业限制你!2026手握这10个高含金量证书,金融/互联网/制造随便挑!
高含金量证书推荐在职业发展中,证书是提升竞争力的重要工具。无论金融、互联网还是制造业,以下10个证书能帮助突破行业限制,其中CDA数据分析师证书是跨领域通用的核心资质之一。金融行业必备证书证书名称适用岗位含金量备注CFA(特…...
STEP3-VL-10B多场景应用:跨境电商商品图比对、APP界面兼容性测试
STEP3-VL-10B多场景应用:跨境电商商品图比对、APP界面兼容性测试 1. 引言 你有没有遇到过这样的烦恼?做跨境电商,供应商发来的商品图片和官网宣传图总有些细微差别,一件件人工核对眼睛都快看花了。或者,你的APP在不同…...
OpenRouter 之后,中国企业需要怎样的 AI API 平台
随着 AI 应用的井喷,API 服务已成为企业降本增效、快速构建AI产品的“水电煤”。随之爆火的,还有 API 聚合平台——它将全球各大厂商、不同架构的 AI 模型统一集成到一个平台中。开发者和企业无需繁琐地逐一对接,就能轻松实现一站式调用与多模…...
万东医疗2026 CMEF发布影像智能体矩阵
当算力指数级增长,大模型渗透到每一处角落,人工智能正在重写医疗的底层代码。但问题从来不是“AI能做什么”,而是机器能否真正理解临床,像医生一样思考,然后自主行动?美的医疗旗下万东医疗在2026年春季CMEF…...
从“云端裸奔“到“本地堡垒“:一份写给技术决策者的OpenClaw实战手册
"石破天惊混沌开,裂痕深处出新苔。" —— 2026年初,OpenClaw如雨后惊雷炸响全球。当安全漏洞频发、隐私泄露风险暴露,这股热潮逐渐退去,留下的不是盲目跟风的喧嚣,而是对AI技术如何真正赋能办公的深刻思考。…...
