Netty复习:(1)Http server: hello world

这篇具有很好参考价值的文章主要介绍了Netty复习:(1)Http server: hello world。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、加依赖

        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-all</artifactId>
            <version>4.1.72.Final</version>
        </dependency>

二、创建自定义的handler

package cn.edu.tju.handler;

import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelOutboundHandler;
import io.netty.channel.ChannelOutboundHandlerAdapter;
import io.netty.channel.SimpleChannelInboundHandler;
import io.netty.handler.codec.http.*;

import java.nio.ByteBuffer;

public class MyHttpHandler extends SimpleChannelInboundHandler<HttpObject> {

    @Override
    protected void channelRead0(ChannelHandlerContext ctx, HttpObject httpObject) throws Exception {
        System.out.println("get info from client...");
        String message = "hello, world";
        ByteBuf byteBuf = Unpooled.copiedBuffer(message.getBytes());
        FullHttpResponse response = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1,
                HttpResponseStatus.OK, byteBuf);
        response.headers().set(HttpHeaderNames.CONTENT_TYPE,"text/plain");
        response.headers().set(HttpHeaderNames.CONTENT_LENGTH, message.length() );
        ctx.channel().writeAndFlush(response);
    }
}

三、定义启动类,在pipeline中添加自定义的handler文章来源地址https://www.toymoban.com/news/detail-736420.html

package cn.edu.tju;


import cn.edu.tju.handler.MyHttpHandler;
import io.netty.bootstrap.ServerBootstrap;

import io.netty.channel.*;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.nio.NioServerSocketChannel;
import io.netty.handler.codec.http.HttpServerCodec;

public class NettyHttpServer {
    private static int port = 9093;
    public static void main(String[] args) {
        EventLoopGroup bossGroup=new NioEventLoopGroup();
        EventLoopGroup workerGroup=new NioEventLoopGroup();
        try{
            ServerBootstrap serverBootstrap=new ServerBootstrap();
            serverBootstrap.group(bossGroup,workerGroup).channel(NioServerSocketChannel.class)
                    .childHandler(new ChannelInitializer<Channel>() {
                        @Override
                        protected void initChannel(Channel channel) throws Exception {
                            channel.pipeline().addLast("httpServerCodec", new HttpServerCodec());
                            channel.pipeline().addLast("myHttpHandler", new MyHttpHandler());
                        }
                    });
            ChannelFuture channelFuture=serverBootstrap.bind(port).sync();
            channelFuture.channel().closeFuture().sync();




        }catch (Exception ex){

        }

    }
}

到了这里,关于Netty复习:(1)Http server: hello world的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【Hello Network】HTTP协议

    【Hello Network】HTTP协议

    作者:@小萌新 专栏:@网络 作者简介:大二学生 希望能和大家一起进步 本篇博客简介:较为详细的介绍HTTP协议 HTTP(Hyper Text Transfer Protocol)协议又叫做超文本传输协议 是一个简单的请求-响应协议 HTTP通常运行在TCP之上 在编写网络通信代码时 我们可以自己进行协议的定制

    2024年02月03日
    浏览(6)
  • 基于Netty实现一个HTTP服务器

    基于Netty实现一个HTTP服务器

    一、序言 Netty因其易编程,高可靠性,高性能的网络IO,在分布式开发中被广泛用于网络通信,比如RocketMQ,Dubbo底层都能看到Netty的身影,高性能的本质是其Reactor线程模型以及异步的编程处理。Reactor有三种模型,常用的有主从 Reactor多线程模式,具体表现如下: 在日常开发中

    2023年04月25日
    浏览(19)
  • 14.Netty源码之模拟简单的HTTP服务器

    14.Netty源码之模拟简单的HTTP服务器

    HTTP 服务器是我们平时最常用的工具之一。同传统 Web 容器 Tomcat、Jetty 一样,Netty 也可以方便地开发一个 HTTP 服务器。我从一个简单的 HTTP 服务器开始,通过程序示例为你展现 Netty 程序如何配置启动,以及引导器如何与核心组件产生联系。 完整地实现一个高性能、功能完备、

    2024年02月15日
    浏览(10)
  • 游戏服务器中使用Netty进行Http请求管理

    作为游戏服务器,无法避免与第三方系统交互。例如:登陆、充值、中台等,这些平台很多都是Web平台,提供http服务接口。这就需要游戏具备http访问功能。 Netty实现异步http调用。 效率:netty的多路复用技术,实现的异步http可以用很少的几个线程实现同时成百上千个http请求

    2024年02月08日
    浏览(13)
  • Netty理论与实践(二) 创建http客户端 服务端

    Netty理论与实践(二) 创建http客户端 服务端

    1. 使用echo服务器模拟http 通过上一篇文章中的echo服务器程序来模拟一次HTTP请求。 接收消息的代码如下: 我们通过postman直接访问echo服务器: 请求成功,echo服务器接收到了本次HTTP请求,控制台打印内容如下: 上面的原理很容易理解,postman通过tcp建立与服务器localhost:8001的连

    2024年02月16日
    浏览(9)
  • [Tomcat/SpringMVC配置]HTTP状态404,请求的资源[/hello]不可用

    [Tomcat/SpringMVC配置]HTTP状态404,请求的资源[/hello]不可用

    本专栏记录java开发中遇到的一系列问题,持续更新,欢迎关注~ 问题: 最近在学习一个ssm的项目,在配置好spring,springmvc以及web.xml之后,连接tomcat成功,但是执行静态网页返回404。问题描述:[Tomcat/SpringMVC配置]HTTP状态404,请求的资源[/hello]不可用 排查问题: 仔细检查配置文

    2024年02月11日
    浏览(15)
  • Java IO流(五)Netty实战[TCP|Http|心跳检测|Websocket]

    Java IO流(五)Netty实战[TCP|Http|心跳检测|Websocket]

    Server端  Client 运行结果 Server Client 运行结果  注意: 需要调整readerIdleTime|writerIdleTime|allIdleTime参数才会显示对应超时信息 服务端 客户端(浏览器) 效果图

    2024年02月11日
    浏览(13)
  • Java使用Netty实现端口转发&Http代理&Sock5代理服务器

    这里总结整理了之前使用Java写的端口转发、Http代理、Sock5代理程序,放在同一个工程中,方便使用。 开发语言:Java 开发框架:Netty 端口转发: HTTP代理服务器,支持账号密码认证 Sock5代理服务器,支持账号密码认证 支持连接后端时直接连接或采用代理连接,也后端代理连接认

    2024年01月25日
    浏览(10)
  • qt安装报错:下载“http://download.qt.io/online/xxxxx/_meta.7z“server replied: Bad Gateway出现网络错误

    qt安装报错:下载“http://download.qt.io/online/xxxxx/_meta.7z“server replied: Bad Gateway出现网络错误

    直接双击官网上下载下来的qt安装包,然后注册登录后到了第三步【安装程序】时,进行远程检索文件总会卡在这里,无法进行到下一步。报错如下: 解决办法: 点击右上角的叉号,关闭当前的安装程序,然后从cmd里启动该安装包,并为其 切换中科大的源 打开cmd 将路径切换

    2024年02月11日
    浏览(13)
  • 【http-server】http-server的安装、前端使用http-server启动本地dist文件服务:

    【http-server】http-server的安装、前端使用http-server启动本地dist文件服务:

    一、http-server 简介: http-server 是一个简单的零配置的命令行 http服务器,它足够强大便于生产和使用,用于本地测试和开发。 有时候我们打开一个文档使用file协议打开的时候,不能发送ajax请求,只能使用http协议才能请求资源,具体的区别大家可以去参考[这篇文档] (www.cnblo

    2024年02月16日
    浏览(13)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包