我们在Netty学习系列五的最后提出了一些问题还没得到回答,今天来通过学习NioServerSocketChannel的源码来帮我们找到之前问题的答案。先看一下NioServerSocketChannel的继承结构。 AttributeMap接口及DefaultAttributeMap主要是提供了体检属性和获取属性的能力,便于我们为Channel绑定额外的属性。 Abstrac
转载 2023-08-27 17:47:17
48阅读
这里写自定义目录标题Tomcat自启动脚本配置通过VIM添加tomcat-monitor.sh脚本给文件赋可执行权限执行脚本文件添加定时任务Springboot自启动脚本Spring boot的执行脚本start.sh脚本 Tomcat自启动脚本配置通过VIM添加tomcat-monitor.sh脚本添加下面命令到脚本中# 获取tomcat进程ID TomcatID=$(ps -ef |grep
转载 2024-09-09 09:55:16
37阅读
# SprintBoot NioServer 重启问题 在现代分布式系统中,微服务架构已经成为一种主要的设计风格。随着 Spring Boot 框架的普及,越来越多的开发者选择使用它来快速构建和开发微服务。在微服务的运行过程中,NIO(Non-blocking I/O)作为一种重要的输入输出模型,其性能和效率提升 واضحة。而随着 Spring Boot NioServer 的普及,重启过程中
原创 9月前
28阅读
BIO NIO 粘包与拆包动机什么是粘包与拆包为什么我们经常把粘包拆包问题与NIO一起谈在TCP相关的API中没有packet相关的概念NIO模式 与粘包拆包 动机Netty 提供了大量的开箱即用的组件, 这些组件对使用者透明了很多技术实现细节, 粘包拆包就是其中很有趣的部分.本人在使用LengthFieldBasedFrameDecoder(在自定义通讯协议的场景下经常被使用: 作为TCP流
@Slf4jpublic class NIOServer { private InetAddress addr; private int port; private Selector selector; private static int BUFF_SIZE = 1024; public NIOServer(InetAddress addr, int port)
原创 2022-02-15 16:50:40
581阅读
@Slf4jpublic class NIOServer { private InetAddress addr; private int port; private Selector selector; private static int BUFF_SIZE = 1024; public NIOServer(InetAddress addr, int port) throws IOException { this.addr = addr; .
原创 2022-04-14 11:43:56
412阅读
最近在看发送消息给server,server接收后又发消息给client。server端:public class NIOServer
原创 2023-01-09 17:26:54
40阅读
编写服务端 public class NIOServer { public static void main(String[] args) throws Exception{ //创建ServerSocketChannel -> ServerSocket ServerSocketChannel se
原创 2022-10-01 07:31:29
10阅读
BIO:阻塞IO,阻塞Socket的accept方法,直到建立连接NIO:非阻塞IO,所有连接注册到Selector上作为一个事件,服务端通过轮询这个Selector来查看是否需要建立连接或执行某些 感兴趣的事件NIO服务端:public class NioServer { public static void main(String[] args) { Selector
转载 2023-08-31 10:10:19
28阅读
一、NIO聊天室入门案例 在学习原理之前,先来了解一个Java NIO实现聊天室的小案例,该案例只有三个类:NioServer 聊天室服务端、N...
原创 2022-03-03 11:05:24
125阅读
1、创建服务端代码 2、创建客户端代码 3、测试 1) 启动服务端 2) 启动两个客户端 3) 输出结果 NioServer输出 第一个NioClient输出。连接建立后,输入hello 第二个NioClient输出。 连接建立后,输入world
转载 2019-08-17 16:27:00
129阅读
2评论
什么是新连接接入?以及新连接接入前,Netty处于什么状态 netty的服务端 初始化,注册在BossGroup中的一条 中,并且给 中维护的jdk原生的 绑定好了端口后, EventLoop启动,开始轮询工作... 这时候 EventLoop 它在轮询什么? 其实它在轮询监听当初NioServer
原创 2022-09-06 11:11:30
138阅读
在上一篇我们已经介绍了客户端的流程分析,我们已经对启动已经大体上有了一定的认识,现在我们继续看对服务端的流程来看一看到底有什么区别。服务端代码public class NioServer { private static final int PORT = 9898; public static void main(String[] args) { EventLoopGroup boss
利用SOCKET通信技术开发一个C/S结构的程序,要求客户端具有登录验证界面,服务器端采用多线程,用户命和密码的验证在服务器端执行。 用的是swing的技术.不是web的. 现在给贴出我的代码: 整个结构分两个工程 1。服务端工程NioServer.java: 采用nio 方式的异步socket通信,不仅可以实现你的服务器还可以让你多学习一下什么是n
转载 2023-08-30 12:19:09
28阅读
项目本基于的平台技术方案spring+mybatis+jersey这一套,在加入webSocket之前,基本通信流程是已经实现好了,项目实现的基本通信的流程是通过NIOServer将服务器接收到的消息发送到activeMQ中,然后通过监听activeMQ出来的消息,获取消息,再基于不同的业务对消息进行各种处理。刚开始接触到webSocket感觉这个技术挺高端的,实现的时候也费了很多心思,不过我是参
转载 2024-07-25 13:27:34
191阅读
使用 NIO 搭建一个聊天室前面刚讲了使用 Socket 搭建了一个 Http Server,在最后我们使用了 NIO 对 Server 进行了优化,然后有小伙伴问到怎么使用 Socket 搭建聊天室,这节仍然使用 NIO 为基础进行搭建。一、NIO 聊天室入门案例该案例只有三个类:NioServer 聊天室服务端、NioClient 聊天室客户端、ClientThread 客户端线程。服务端代码
1  前言这节我们自己动手感受一下 HTTP的东西,我们知道 HTTP 协议是在应用层解析内容的,只需要按照它的报文的格式封装和解析数据就可以了,具体的传输还是使用的 Socket,我们基于上节的NIO Socket自己做一个简单的实现了HTTP协议的例子。2  源码分析因为HTTP 协议是在接收到数据之后才会用到的,所以我们只需要修改 NioServer 中的Handler
转载 2023-08-24 16:34:26
217阅读