网络协议-BIO实战和NIO编程

网络通信编程基本常识

 原生JDK网络编程-BIO

  原生JDK网络编程-NIO

 

 

 Buffer 的读写

向 Buffer 中写数据
        写数据到 Buffer有两种方式:
               1. 读取 Channel写到 Buffer。
                2.通过 Buffer 的 put0方法写到 Buffer 里。

从 Channel 写到 Buffer 的例子

int bytesRead = inChannel.read(buf); //read into buffer.

通过 put 方法写 Buffer 的例子:
buf.put(127);
        put 方法有很多版本,允许你以不同的方式把数据写入到 Buffer 中。例如, 写到一个指定的位置,或者把一个字节数组写入到 Buffer。在比如:
put(byte b) 相对写,向 position 的位置写入一个 byte,并将 postion+1,为下次读写作准备。


fip0方法
        flip 方法将 Buffer 从写模式切换到读模式。调用 flip0)方法会将 position 设回 0,并将 limit设置成之前 position 的值。

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

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

相关文章

力扣经典面试题——搜索二维矩阵(两次二分搜索)

https://leetcode.cn/problems/search-a-2d-matrix/description/?envTypestudy-plan-v2&envIdtop-100-liked 思路:先按行二分,再按列进行二分。即先找到对应的行,再找对应的列。 对于这种判断是否存在某个数,记得while(left…

[JS设计模式]Mixin Pattern

Mixin是一个对象,我们可以使用它来为另一个对象或类添加可重用的功能,而无需使用继承。我们不能单独使用mixins:它们的唯一目的是在没有继承的情况下向对象或类添加功能。 假设对于我们的应用程序,我们需要创建多个狗。然而,我们…

Linux系统中跟TCP相关的系统配置项

TCP连接保活 参考 《Nginx(三) 配置文件详解 - 基础模块》3.18章节 net.ipv4.tcp_keepalive_intvl:设置TCP两次相邻探活检测的间隔时间。默认75秒,单位是秒,对应配置文件/proc/sys/net/ipv4/tcp_keepalive_intvl;net.ipv4.tcp_kee…

form-data、x-www-form-urlencoded、raw 和 binary

在 Postman 中,有四种常见的请求体格式,分别是 form-data、x-www-form-urlencoded、raw 和 binary。它们的区别如下: form-data form-data 格式通常用于上传文件或二进制数据。在 Postman 中,你可以通过选择 Body 标签页&#x…

【错误记录/js】保存octet-stream为文件后数据错乱

目录 说在前面场景解决方式其他 说在前面 后端:go、gin浏览器:Microsoft Edge 120.0.2210.77 (正式版本) (64 位) 场景 前端通过点击按钮来下载一些文件,但是文件内容是一些非文件形式存储的二进制数据。 后端代码 r : gin.Default()r.Stat…

MyBatis见解2

5.MyBatis的原始Dao开发-了解 使用Mybatis开发Dao,通常有两个方法,即原始Dao开发方式和Mapper接口代理开发方式。而现在主流的开发方式是接口代理开发方式,这种方式总体上更加简便。我们的课程讲解也主要以接口代理开发方式为主。在第4节已经…

项目功能需求

需求分解做法记录 功能&#xff1a;先按名称分组然后&#xff0c;组内从低到高排序&#xff0c;然后每组排序 做法一&#xff1a; List<CruiseDetailOutputDto> result new ArrayList<CruiseDetailOutputDto>();List<CruiseDetailOutputDto> journeyCrui…

冒泡排序之C++实现

描述 冒泡排序算法是一种简单的排序算法&#xff0c;它通过将相邻的元素进行比较并交换位置来实现排序。冒泡排序的基本思想是&#xff0c;每一轮将未排序部分的最大元素逐个向右移动到已排序部分的最右边&#xff0c;直到所有元素都按照从小到大的顺序排列。 冒泡排序的算法…

阿里云 ARMS 应用监控重磅支持 Java 21

作者&#xff1a;牧思 & 山猎 前言 今年的 9 月 19 日&#xff0c;作为最新的 LTS (Long Term Support) Java 版本&#xff0c;Java 21 正式 GA&#xff0c;带来了不少重量级的更新&#xff0c;详情请参考 The Arrival of Java 21 [ 1] 。虽然目前 Java 11 和 Java 17 都…

【Hugging Face】解决BART模型调用时KeyError: ‘new_zeros‘的问题

错误代码&#xff1a; tokenizer AutoTokenizer.from_pretrained("philschmid/bart-large-cnn-samsum") model AutoModelForSeq2SeqLM.from_pretrained("philschmid/bart-large-cnn-samsum")model.eval() model.to("cuda") loss 0 for i in …

前缀和+单调双队列+贪心:LeetCode2945:找到最大非递减数组的长度

本文涉及知识点 C算法&#xff1a;前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 单调双队列 贪心 题目 给你一个下标从 0 开始的整数数组 nums 。 你可以执行任意次操作。每次操作中&#xff0c;你需要选择一个 子数组 &#xff0c;并将这个子数组用它所…

python脚本 ssh工具 ssh上传文档 选择文档并上传到ssh服务器

此文分享一个python脚本,用于快速的定位、选择文档,并将其上传到指定的ssh服务器。 效果演示 🔥完整演示效果 👇第一步,显然,我们需要选择功能 👇第二步,我们需要定位并选择需要上传的文档 👇第三步,确认我们需要上传文档的ssh服务器 👇第四步,定位、选择…

Socket与Server通讯

ByteArrayOutputStream 对byte类型数据进行写入的类 &#xff0c;自动扩容&#xff0c;相当于一个中间缓冲层&#xff0c;将类写入到文件等其他outputStream。它是对字节进行操作&#xff0c;属于内存操作流 import java.io.ByteArrayOutputStream; import java.io.OutputStrea…

gulp和webpack的区别

Gulp和Webpack都是前端开发中常用的工具&#xff0c;但它们在功能和定位上存在一些差异。 首先&#xff0c;Gulp是一个工具链和构建工具&#xff0c;强调的是前端开发流程。它可以配合各种插件进行js压缩、css压缩、less编译等操作&#xff0c;实现自动化工作。在Gulp中&#…

Qt的简单游戏实现提供完整代码

文章目录 1 项目简介2 项目基本配置2.1 创建项目2.2 添加资源 3 主场景3.1 设置游戏主场景配置3.2 设置背景图片3.3 创建开始按钮3.4 开始按钮跳跃特效实现3.5 创建选择关卡场景3.6 点击开始按钮进入选择关卡场景 4 选择关卡场景4.1场景基本设置4.2 背景设置4.3 创建返回按钮4.…

2024 十大AI预测

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

偏最小二乘法中的“偏”的含义

问&#xff1a;偏最小二乘法中的“偏”是指什么意思&#xff1f; 答&#xff1a;偏最小二乘法&#xff08;Partial Least Squares&#xff0c;简称PLS&#xff09;中的“偏”指的是这种方法部分地考虑了响应变量的信息来进行预测变量的提取。与传统的最小二乘法相比&#xff0c…

Python 时间处理与数据分析利器:深入剖析 Arrow 模块的优势

写在开头 时间在数据分析中扮演着至关重要的角色&#xff0c;而选择适当的时间处理模块对于提高代码效率和可读性至关重要。本文将深入介绍 Arrow 模块&#xff0c;探讨其相对于其他时间处理模块的优势&#xff0c;以及在数据分析中的实际应用。 1. Arrow 模块概览 Arrow 模…

模式识别与机器学习(十一):Bagging

1.原理 Bagging [Breiman, 1996a] 是井行式集成学习方法最著名的代表.从名字即可看出&#xff0c;它直接基于自助采样法(bootstrap sampling)。给定包含m 个样本的数据集&#xff0c;我们先随机取出一个样本放入采样集中&#xff0c;再把该样本放回初始数据集&#xff0c;使得…

【JAVA】分布式链路追踪技术概论

目录 1.概述 2.基于日志的实现 2.1.实现思想 2.2.sleuth 2.2.可视化 3.基于agent的实现 4.联系作者 1.概述 当采用分布式架构后&#xff0c;一次请求会在多个服务之间流转&#xff0c;组成单次调用链的服务往往都分散在不同的服务器上。这就会带来一个问题&#xff1a;…