如何读取套接字响应?

时间:2015-01-24 14:26:19

标签: java sockets apache-camel inputstream netty

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

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

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

我使用textline=true

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

如何将autoAppendDelimiter=false添加到端点?也许代码示例会非常有用。