网络编程
文章平均质量分 83
Shacoray
这个作者很懒,什么都没留下…
展开
-
Netty- Netty实现RPC
Netty实现RPCRPC基本介绍RPC(Remote Procedure Call)–远程过程调用,是一个计算机通信协议。该协议允许运行一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程两个或多个应用程序都分布在不同的服务器上,它们之间的调用像是本地方法调用一样[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Aa5yyUKn-1623036098194)(\pic\Netty2\Rpc调用过程.png)]常见的RPC框架有原创 2021-06-07 11:21:53 · 139 阅读 · 1 评论 -
Netty-Netty服务器的启动源码简单分析
Netty服务器的启动源码分析源码剖析源码需要剖析到Netty调用doBind方法,追踪到NioServerSocketChannel的doBind方法并且Debug程序到NioEventLoop类的run代码,无限循环,在服务器端运行。netty服务器创建的代码/* * Copyright 2012 The Netty Project * * The Netty Project licenses this file to you under the Apache Licen原创 2021-06-07 11:21:21 · 92 阅读 · 0 评论 -
Netty-TCP粘包和拆包原理
TCP粘包和拆包原理TCP粘包和拆包基本介绍TCP是面向连接的,面向流的,提供高可靠性服务。收发两端(客户端和服务端)都要有——成对的Socket,因此发送端为了将多个发给接收端的包,更有效的发给对象,使用了优化方法(Nagle算法),将多次间隔较小且数据量小的数据,合并成一个大的数据块,然后进行封包。这样做虽然提高了效率,但是接收端就难于分辨出完整的数据包了,因为面向流的通信是无消息保护边界的。由于TCP无消息保护边界,需要在接收端处理消息边界问题,也就是我们所说的粘包、拆包问题。[原创 2021-06-07 11:19:15 · 170 阅读 · 0 评论 -
Netty - Netty编码器机制
Netty编码器机制编码和解码的基本介绍编写网络应用程序时,因为数据在网络中传输的都是二进制字节码数据,在发送数据时就需要编码,接收数据时就需要解码[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o52Anr6n-1623035864972)(pic\Netty2\Netty编码解码.png)]codec(编码器)的组成部分有两个:decoder(解码器)和encoder(编码器)。encoder负责把业务数据缓存字节码数据,decoder负责把字节码数据转换原创 2021-06-07 11:18:00 · 199 阅读 · 1 评论 -
Netty -Netty心跳检测机制案例,Netty通过WebSocket编程实现服务器和客户端长链接
Netty心跳检测机制案例案例要求编写一个Netty心跳检测机制案例,当服务器超过3秒没有读时,就提示读空闲当服务器超过5秒没有写操作时,提示写空闲服务器超过7秒没有读或者写操作时,就提示读写空闲代码HeartBeatServerpackage com.jl.java.web.heartbeat;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import原创 2021-06-07 11:17:23 · 367 阅读 · 0 评论 -
Netty - Netty应用实例-群聊系统
Netty应用实例-群聊系统实例要求:编写一个Netty群聊系统,实现服务器和客户端之间的数据简单通讯(非阻塞)实现多人群聊服务端:可以监测用户上线,离线,并实现消息转发功能客户端:通过channel可以无阻塞发送消息给其他所用用户,同时可以接受其他用户发送的消息(由服务器转达得到)目的:进一步理解Netty非阻塞网络编程机制代码服务端GroupChatServerpackage com.jl.java.web.groupchat;import io.netty.b原创 2021-06-07 11:16:08 · 162 阅读 · 0 评论 -
Netty-Netty模型-taskQueue自定义任务,Netty模型再说明,异步模型
Netty模型-taskQueue自定义任务任务队列中的Task有3种典型使用场景用户程序自定义的普通任务package com.jl.java.web.nettyserver;import io.netty.buffer.ByteBuf;import io.netty.buffer.Unpooled;import io.netty.channel.ChannelHandlerContext;import io.netty.channel.ChannelInboundHandle原创 2021-06-07 11:15:06 · 162 阅读 · 1 评论 -
Netty-Netty入门实例
Netty入门实例-TCP服务实例要求Netty服务器在6668端口监听,客户端能发送消息给服务器“hello,服务器”服务器可以回复消息给客户端“hello,客户端”步骤服务端步骤创建了两个NIOEventLoopGroup线程组,BossGroup和WorkerGroupBossGroup只处理连接请求,真正的客户端的业务处理会交给WorkerGroup两个NioEventLoopGroup都是无限循环的创建服务端的启动对象(根据服务端启动引导类ServerBoo原创 2021-06-07 11:13:55 · 409 阅读 · 0 评论 -
Netty-Netty线程模型
NettyNetty线程模型概述线程模型基本介绍不同的线程模型、对程序的性能有很大影响,为了搞清Netty的线程模式,需要了解各个线程模式目前存在的线程模型传统阻塞IO服务模型Reactor模型根据Reactor的数量和处理资源线程的数量不同,有3中典型的实现单Reactor单线程单Reactor多线程主从Reactor多线程Netty线程模型(Netty主要基于主从Reactor多线程模型做了一定的改进,其中主从Reactor多线程模型有多个Reactor)传统原创 2021-05-28 15:48:31 · 199 阅读 · 0 评论 -
Netty-Netty介绍和概述
NettyNetty的介绍Netty是由JBOSS提供的一个Java开源框架,现为Github上的独立项目。Netty是一个异步的、基于事件驱动的网络应用框架,用以快速开发高性能、高可靠性的网络IO程序Netty主要针对在TCP协议下,面向Clients端的高并发应用,或者Peer-to-Peer场景下的大量数据持续传输的应用Netty本质是一个NIO框架,适用于服务器通讯相关的多种应用场景要透彻理解Netty,需要先学习NIO,这样我们才能阅读Netty的源码Netty的应用场景互原创 2021-05-28 15:43:56 · 146 阅读 · 0 评论 -
Java Web-BIO、NIO、AIO的概念和相关组件
BIO、NIO、AIOI/O模型I/O模型基本说明I/O模型简单的理解:就是用什么样的通道进行数据的发送和接收,很大程度上决定了程序通信的性能Java共支持3种网络编程模型I/O模式:BIO、NIO、AIOJava BIO:同步并阻塞(传统阻塞型),服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k5rQRTwA-1原创 2021-05-20 15:24:00 · 211 阅读 · 1 评论 -
Java Web-Servlet的理解和使用以及相应的类Servlet类,Listener类,Filter类
Java WebServlet什么是ServletServlet是JavaEE规范之一。规范就是接口Servlet就是javaWeb三大组件之一。三大组件分别是:Servlet程序,Filter过滤器,Listener监听器。Servlet是运行在服务器上的一个java小程序,它可以接受客户端发送过来的其你去,并响应数据给客户端。Servlet是Server和Applet的缩写,是服务端小程序的意思。使用Java语言编写的服务端程序,可以像生成动态动态的WEB页,Servlet主要运行在服务器原创 2021-05-15 16:11:58 · 144 阅读 · 1 评论 -
Java Web-HTTP协议(粗浅整理)
Java WebHTTP协议HTTP协议概述概述HTTP协议(Hypertext Transfer Protocol,超文本传输协议),是一个客户端请求和响应的标准协议,这个协议详细规定了浏览器和万维网服务器之间相互通信的规则。用户输入地址和端口号之后就可以从服务器上取得所需要的网页信息。通信规则规定了客户端发送给服务器的内容格式,也规定了服务器发送给客户端的内容格式。客户端发送给服务器的叫“请求协议”,服务器发送给客户端的叫“响应协议”[外链图片转存失败,源站可能有防盗链机制,建议将图片保原创 2021-05-13 12:11:58 · 122 阅读 · 1 评论 -
JavaBase-网络编程
JavaBase-网络编程网络编程概述概述Java是Internet上的语言,它从语言级上提供了对网络应用程序的支持,程序员能够很容易开发常见的网络应用程序Java提供的网络类库,可以实现无痛的网络连接,联网的底层细节被隐藏在Java的本级安装系统里,由JVM进行控制。并且Java实现了一个跨平台的网络库,程序员面对的是一个统一的网络环境网络基础计算机网络把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大、功能强的网络系统,从而使总舵的计算机可以方便地相互传递信息、原创 2021-05-06 11:41:27 · 87 阅读 · 0 评论