- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用 Netty 的程序中遇到了一个非常奇怪的问题。
我正在监听端口并解析消息(使用 FrameDecoder 实现)。如果我接收到一个连接,一切正常,但是当我在同一个端口上接收到两个连接时(每个连接都来自不同的服务器),我遇到了一种罕见但严重的情况,我得到了 corruptedFrameException
当我的程序收到具有完全相同时间戳的 TCP 数据包时(以非常高的速率发送信息时)如下所示,就会出现此问题
我的程序试图将 1 和 2 解析为消息,而不是知道实际消息是 1 & 3 和 2 & 4我在某处读到,也许我需要为每个 channel 连接实例化一个新的 FrameDecoder,但我不知道该怎么做。我在启动时将解码器添加到管道中,但我不知道如何将新解码器添加到特定 channel
我遇到的异常是:
org.jboss.netty.handler.codec.frame.CorruptedFrameException: Adjusted frame length (0) is less than lengthFieldEndOffset: 2
at org.jboss.netty.handler.codec.frame.LengthFieldBasedFrameDecoder.decode(LengthFieldBasedFrameDecoder.java:340) ~[netty-3.1.5.GA.jar:]
at org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:282) ~[netty-3.1.5.GA.jar:]
at org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:214) ~[netty-3.1.5.GA.jar:]
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:345) ~[netty-3.1.5.GA.jar:]
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:332) ~[netty-3.1.5.GA.jar:]
at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:323) ~[netty-3.1.5.GA.jar:]
at org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:275) ~[netty-3.1.5.GA.jar:]
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:196) ~[netty-3.1.5.GA.jar:]
at org.jboss.netty.util.internal.IoWorkerRunnable.run(IoWorkerRunnable.java:46) ~[netty-3.1.5.GA.jar:]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:651) [na:1.5.0]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:676) [na:1.5.0]
at java.lang.Thread.run(Thread.java:595) [na:1.5.0]
和
org.jboss.netty.handler.codec.frame.TooLongFrameException: Adjusted frame length exceeds 4096: 8224
at org.jboss.netty.handler.codec.frame.LengthFieldBasedFrameDecoder.decode(LengthFieldBasedFrameDecoder.java:296) ~[netty-3.1.5.GA.jar:]
at org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:282) ~[netty-3.1.5.GA.jar:]
at org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:216) ~[netty-3.1.5.GA.jar:]
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:345) ~[netty-3.1.5.GA.jar:]
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:332) ~[netty-3.1.5.GA.jar:]
at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:323) ~[netty-3.1.5.GA.jar:]
at org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:275) ~[netty-3.1.5.GA.jar:]
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:196) ~[netty-3.1.5.GA.jar:]
at org.jboss.netty.util.internal.IoWorkerRunnable.run(IoWorkerRunnable.java:46) ~[netty-3.1.5.GA.jar:]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:651) [na:1.5.0]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:676) [na:1.5.0]
at java.lang.Thread.run(Thread.java:595) [na:1.5.0]
最佳答案
您需要将帧解码器的新对象添加到您的新(第二个?) channel 。重复异常是因为您使用的是相同的 channel 。
关于java - 多个连接包同时到达的Netty CorruptedFrameException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10878170/
我在使用 Netty 的程序中遇到了一个非常奇怪的问题。 我正在监听端口并解析消息(使用 FrameDecoder 实现)。如果我接收到一个连接,一切正常,但是当我在同一个端口上接收到两个连接时(每个
我正在尝试在我的公司代理后面建立网络套接字通信。我可以看到我的代理服务器和远程主机之间的代理连接已建立并得到握手响应。之后,当我尝试发送消息时出现异常。 这是我的 channel 初始化 Bootst
工具集: 数据库服务器 : TinkerPop/TinkerGraph v 3.3.3 (Stanalone - 使用 conf/gremlin-server.yaml) ( channelizer
我是一名优秀的程序员,十分优秀!