【问题标题】:How to read socket response?如何读取套接字响应?
【发布时间】:2015-01-24 14:26:19
【问题描述】:

我使用 Camel + Netty 进行套接字连接。在camel-context 文件中,我使用 Netty 进行套接字连接,但我希望 Netty 的行为如下:

Netty 必须从输入流中读取大小等于 inputstream.available() 的字符,但 Netty 会阻止代码,因为它在输入流的末尾需要 \r\n\r\n

如何配置 Netty 以实现此功能?我应该使用哪些 Netty 选项?

我使用textline=true

【问题讨论】:

  • 读取available() 字节并不能解决任何问题。您的问题最不清楚,还需要编辑以将其转换为标准英语。

标签: java sockets apache-camel inputstream netty


【解决方案1】:

根据您的描述,您正在从每个消息(行)长度相等的协议中读取一定数量的字符。代码行Use textline = true 告诉 Netty 你将发送一个文本行协议,即一行可能是可变大小的,并以诸如\r\n 之类的字符序列终止。

将此行设置为 false 将消除 Netty 等待 EOL 终止符的需要。但是,您将需要实现某种形式的编解码器来读取您的协议。您的编解码器相当简单,因为它看起来所有行的长度都相同。

【讨论】:

    【解决方案2】:

    autoAppendDelimiter=false 添加到端点怎么样?也许一个代码示例会很有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-11
      • 2020-02-22
      • 2017-08-31
      • 2020-09-30
      • 2018-06-25
      • 1970-01-01
      • 2019-10-16
      相关资源
      最近更新 更多