io
文章平均质量分 54
lang20150928
stay hungry stay foolish
展开
-
什么是reactor模式
现代网络编程框架和库,如Java的NIO和Netty,通常提供了灵活的配置选项,允许开发者根据需要选择合适的Reactor模式实现。在该模式中,一个中心的“反应器”(Reactor)对象负责监听和分发来自多个客户端的事件请求到相应的处理器(Handler)。这种模式常用于构建高性能的网络服务器,如Web服务器、数据库服务器和消息中间件等,在这些场景中需要高效地处理大量并发的客户端连接和I/O操作。(Reactor):这是模式的核心组件,它使用多路复用器来监听事件源,并在检测到事件时调度相应的处理器。原创 2023-12-28 15:23:09 · 500 阅读 · 0 评论 -
select poll epoll
与select不同的是,poll使用结构体pollfd来存储待监视的文件描述符和相应的事件,这使得poll可以处理比select更多的文件描述符,而且poll没有最大文件描述符数量的限制。在Netty中,处理select、poll和epoll的选择和使用是自动进行的,Netty框架会根据运行的操作系统和环境选择最合适的I/O多路复用技术。可以理解为创建了一个不会导致页面跳转的“假链接”,它的作用是在保持链接外观的同时提供一种执行 JavaScript 代码的方式。类,它是事件循环的具体实现。原创 2023-12-28 15:17:47 · 948 阅读 · 0 评论 -
Socket选项
文章目录 TCP_NODELAY SO_BINDADDR对一个的java类为java.net.SocketOptions TCP_NODELAY Fetch the local address binding of a socket (this option cannot be “set” only “gotten”, since sockets are bound at creation time, and so the locally bound address cannot be chang原创 2021-02-05 15:23:45 · 192 阅读 · 0 评论 -
UDP编写一个时间服务器与客户端
服务端package io.netty.example.raw;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.nio.charset.StandardCharsets;import java.util.Date;publi原创 2021-02-04 16:52:28 · 130 阅读 · 0 评论 -
NIO编写一个单文件的的非阻塞服务器
package com.example.managingtransactions;import java.io.IOException;import java.net.InetSocketAddress;import java.net.ServerSocket;import java.net.URLConnection;import java.nio.ByteBuffer;import java.nio.channels.*;import java.nio.charset.StandardC原创 2021-02-03 21:43:14 · 77 阅读 · 0 评论 -
从web网站下载二进制文件保存到磁盘
String url = "https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=2986972877,679161765&fm=26&gp=0.jpg"; URL root = new URL(url); URLConnection urlConnection = root.openConnection(); // 读取内容类型 String contentType = urlConnection.getContent.原创 2021-01-31 14:49:33 · 233 阅读 · 0 评论 -
四种主要的IO模型
服务器端编程,经常需要构造高性能的网络应用,需要选用高性能的IO模型。阻塞IO:需要内核IO操作彻底完成后,才返回用户空间执行用户的操作。阻塞指的是用户空间程序的执行状态。同步IO:一种用户控件与内核空间的IO发起方式,用户空间的线程是主动发起IO请求的那一方,内核空间是被动接受方。异步IO:系统内核是主动发起IO请求的一方,用户空间的线程是被动接受方。常见的IO模型有四种:同步阻塞IO...原创 2020-04-08 17:47:09 · 207 阅读 · 0 评论 -
高并发IO读写基础原理
用户程序的IO读写,依赖于底层的IO读写,基本上就会用到底层的read&write两大系统调用。在不同的操作系统中,IO读写的系统调用的名称可能完全不一样,但是基本功能都是一样的。read系统调用,并不是直接从物理设备把数据读取到内存中;write系统调用,也不是直接将数据写入到物理设备。上层应用无论是调用操作系统的read,还是调用操作系统的write,都会涉及缓冲区.具体来说,调用系...原创 2020-04-06 12:06:59 · 405 阅读 · 0 评论