java - 简单的 Netty 处理程序,逐字节遍历消息

标签 java netty

是否有一个非常准系统的 Netty 处理程序的示例,它只是获取在线路上发送的任何数据并将其写入文件?

我在想一些类似的事情:

public class SimpleHandler extends SimpleChannelUpstreamHandler {

public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception {
        HttpRequest request = (HttpRequest) e.getMessage();
        // get data from request and write to a file
}

有什么想法吗?感谢您的任何想法

最佳答案

您也可以只使用此方法将 ChannelBuffer 的内容传输到 OutputStream:

http://netty.io/docs/stable/api/org/jboss/netty/buffer/ChannelBuffer.html#readBytes(java.io.OutputStream,%20int )

所以像这样:

public class FileWriterHandler extends SimpleChannelHandler {
    private final String filename;

    public FileWriterHandler(String filename) {
        this.filename = filename;
    }

    @Override
    public void messageReceived(ChannelHandlerContext context, MessageEvent event) throws Exception{
        ChannelBuffer buffer = (ChannelBuffer)event.getMessage();
        FileOutputStream out = null;
        try {
            out = new FileOutputStream(filename, true)
            buffer.readBytes(out, buffer.readableBytes());
        } finally {
            if (out != null) out.close();
        }
    }
}   

关于java - 简单的 Netty 处理程序,逐字节遍历消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9707980/

相关文章:

java - 如何在android中获取移动设备的经纬度?

java - 如何检查 I/O 操作是阻塞的还是非阻塞的?

java - 需要在 ANTLR 2.7 中构建 C# 示例的帮助

java - 在元素 xml 之间保留文字字符串

java - Netty 或 java.net.Socket 用于绿地项目?

tomcat - netty-tcnative 不适用于 Google Cloud Vision API

java - ChannelId 会改变吗?

java - Netty通过一个 channel 写入多条消息

java - 无法在 Windows 上启动 Neo4j,没有错误消息

java - JDBC 如何使用 CallableStatement 创建过程?