tcp :
绑定一个 socket 只是用来监听,accept 对每个客户端生成一个 socket 用来维护滑动窗口等。每个客户端用一个 socket 用来维护滑动窗口等。
4 次挥手对应两次 close 的 fin 和返回的 ack。
而三次挥手在 connect 里阻塞完成。

​udp :
双方各建一个 socket,收到对方信息时,也收到对方 ip,后面用自己的 socket 往 ip 发送就行。

通用:read write 系统io读写,可以读写任何文件fd #include<unistd.h>
tcp:recv send #include<sys/socket.h>
udp:recvfrom sendto #include<sys/socket.h>

udp的recvfrom接收到数据后要即使从缓冲区拿出数据,不然缓冲区满了,会覆盖之前的数据。
sendto发送时不存在发送部分字节,因为它时数据报形式,会把用户的数据全部装入一个udp数据报一起发送,要么成功要么失败。无论每次发送多少,每个 sendto 调用会尝试将整个数据报作为一个不可分割的单元发送,具有原子性,所以只有成功和失败。若无法发送(如缓冲区不足、报文过大,没有网络等),sendto 返回 -1。因此加上包头尽量不超过1个MTU大小,大部分以太网MTU为1500字节。
tcp的发送是流式的它有滑动窗口,它的send每次调用只负责将数据拷贝到内核。它的返回是拷贝到内核的字节大小。因此如果一次没有发送完成,需要用户手动调整待发送缓冲区的指针位置,直到发送完毕。(多次send拷贝到内核后,可能只对应着一次网络发送,因此控制发送大小的是滑动窗口。)
tcp的接收,因为tcp是流式的,它有滑动窗口限制,当缓冲区快满时,会通知阻止发送方的发送行为,因此不会出现覆盖数据,介个就叫可靠传输阿。

无论时udp还是tcp,他们的接收默认都是阻塞的,但可设置非阻塞。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/91805.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/91805.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/91805.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux命令top

top一、 命令二、 如何查看top输出的结果一、 命令 top命令是Linux中的一个实时进程监控工具&#xff0c;类似于windows中的任务管理器。 基本命令 top二、 如何查看top输出的结果 我们需要分析top输出的结果 top输出的结果分为上下两部分&#xff0c;先看上半部分 第一行是…

Perl 数据库连接

Perl 数据库连接 概述 Perl是一种强大的编程语言&#xff0c;广泛应用于文本处理、系统管理、网络编程等领域。随着数据库技术的快速发展&#xff0c;Perl与数据库的结合也日益紧密。本文将详细介绍Perl数据库连接的相关知识&#xff0c;包括常用的数据库类型、连接方法以及一些…

jenkins从入门到精通-P1—九五小庞

1. jenkins的两个核心为CI持续集成 CD持续部署2.jenkins在企业工作中的流程3. 学习的内容包括

第九节 Redis 事务、Redis 脚本

Redis 事务可以一次执行多个命令&#xff0c; 并且带有以下两个重要的保证&#xff1a; 事务是一个单独的隔离操作&#xff1a;事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中&#xff0c;不会被其他客户端发送来的命令请求所打断。事务是一个原子操作&#x…

托福阅读37-2

托福阅读37-2 1.reinforcement from reintroduction定位到倒数第二句&#xff0c;这里我没看懂former和term&#xff0c;直接懵掉了&#xff0c;然后往后看。这句话其实省略了&#xff0c;补充完应该是The former is termed reintroduction and the latter is termed reinforce…

docker-compose一键部署Springboot+Vue前后端分离项目

1. 背景说明 后端使用JDK8&#xff0c;前端为普通Vue项目前端访问后端接口&#xff0c;统一带了前缀/api 2. 项目配置 2.1 后端 yml文件里配置统一访问前缀/api2.2 前端 API路径配置为相对路径&#xff1a;说明&#xff1a;我这边前后端应用都是部署在同一台服务器上&#xff0…

Unity_数据持久化_XML基础

Unity数据持久化 三、XML数据持久化 3.1 XML基础概念 3.1.1 什么是XML XML&#xff08;eXtensible Markup Language&#xff09;**是一种可扩展的标记语言&#xff0c;用于存储和传输数据。它具有以下特点&#xff1a; 结构化&#xff1a;数据以层次结构组织可读性&#xff1a;…

大语言模型的解码策略:贪婪解码与波束搜索

在自然语言生成任务&#xff08;如机器翻译、文本摘要、图像描述等&#xff09;中&#xff0c;语言模型通常会输出一个词的概率分布&#xff0c;但模型本身并不会自动告诉你应该选哪些词作为最终的输出句子。因此&#xff0c;我们需要设计一个“解码策略”来从这些概率中生成可…

智慧园区:中小企业的 “减压阀” 与数字化招商革命

在当前的经济环境下&#xff0c;中小企业的生存发展面临着诸多挑战&#xff0c;其中选址成本俨然成为了创业路上的 “第一道坎”。传统招商模式中&#xff0c;信息不对称的问题尤为突出&#xff0c;初创企业常常因此陷入选址失误的困境。有的企业选在交通不便的地方&#xff0c…

从零开始配置pytorch环境

总结了一下几篇热门文章和自己的经验&#xff0c;方便以后换设备配置环境 一、安装Anaconda 这一步是为了不污染全局环境&#xff0c;很有必要。 直接清华源镜像下载&#xff1a;Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 根据自…

离线录像文件视频AI分析解决方案

前言 在安防领域&#xff0c;视频的价值不言而喻&#xff0c;尤其是录像文件的价值显得更是尤为重要。在一个安防项目上视频录像一般存储1个月、3个月甚至更长时间&#xff0c;这就形成了海量的离线录像文件数据。传统安防项目对录像文件的处理还有一定的局限性&#xff1a; 事…

人工智能与金融:金融服务的重塑

1. AI 驱动金融变革&#xff1a;从 “标准化” 到 “智能化”1.1 传统金融的痛点与 AI 的破局传统金融行业长期面临三大瓶颈&#xff1a;服务效率低下&#xff1a;银行柜台办理一笔贷款需 3-5 个工作日&#xff0c;人工审核流程繁琐&#xff0c;客户等待时间长&#xff1b;风险…

Qwen大模型关键参数解析:缓存与滑动窗口

QwenLLM "use_cache": true Qwen "use_sliding_window": false 在大语言模型(如Qwen系列)的生成配置中,"use_cache": true 和 "use_sliding_window": false 是两个与模型推理效率和长文本处理相关的重要参数,具体含义如下: 1. …

Flask 框架全面详解

Flask 是一个轻量级的 Python Web 框架&#xff0c;以其简洁、灵活和易扩展的特性广受欢迎。接下来我将从多个维度详细介绍 Flask 框架。 1. Flask 核心特性 微框架设计 轻量级&#xff1a;核心功能精简&#xff0c;只包含基本组件可扩展&#xff1a;通过扩展添加所需功能无…

概率 多维随机变量与分布

一、二维1、二维随机变量及其分布假设E是随机试验&#xff0c;Ω是样本空间&#xff0c;X、Y是Ω的两个变量&#xff1b;(X,Y)就叫做二维随机变量或二维随机向量。X、Y来自同一个样本空间。联合分布函数 F(x,y)P(X≤x,Y≤y)&#xff0c;即F(x,y)表示求(x,y)左下方的面积。 F(x,…

Spring AI MCP:解锁大模型应用开发新姿势

一、AI 浪潮下的新利器 ——Spring AI MCP 登场在当今数字化时代&#xff0c;人工智能&#xff08;AI&#xff09;无疑是最耀眼的技术明星&#xff0c;正以前所未有的速度渗透到各个领域&#xff0c;深刻改变着我们的生活和工作方式。从智能语音助手到图像识别技术&#xff0c;…

ThinkPHP5x,struts2等框架靶场复现

ThinkphpThinkphp5x远程命令执行及getshell首先我们先找一个环境&#xff0c;或者自己搭建一个环境fofa&#xff1a;body"ThinkPHP V5"搭建&#xff1a;vulhub/thinkphp/5-rcedocker-compose up -d然后去访问我们的环境远程命令执行/?sindex/think\app/invokefuncti…

Hyperliquid:揭秘高性能区块链共识引擎HyperBFT

大家好&#xff0c;今天我们一起探讨Hyperliquid这个高性能区块链项目以及它背后的共识引擎。Hyperliquid能在拥挤的去中心化交易赛道&#xff08;DEX&#xff09;中脱颖而出&#xff0c;很大程度上要归功于其高效的共识机制——HyperBFT。 为了彻底搞懂HyperBFT&#xff0c;我…

大模型开发框架LangChain之构建知识库

1.前言 为了避免 llm正确的废话和幻觉&#xff0c;知识库可以说是现在开发 agent的必备了。同时&#xff0c;作为 rag中的 r&#xff0c;知识库召回的成功率会极大的影响 llm的最终回复效果。一般&#xff0c;会把知识库召回的内容作为背景知识给到 llm&#xff0c;并在 prompt…

NPM打包时,报reason: getaddrinfo ENOTFOUND registry.nlark.com

先说解决方法&#xff1a;将 package-lock.json 文件中的 registry.nlark.com 改为 registry.npmmirror.com现象&#xff1a;npm ERR! code ENOTFOUND npm ERR! syscall getaddrinfo npm ERR! errno ENOTFOUND npm ERR! network request to https://registry.nlark.com/url-too…