0

我一直在研究一个服务器应用程序,随着时间的推移,它会收到相当多的连接。为了能够处理这个问题,我一直在使用标准的 java NIO 类实现非阻塞设计。但是有很多细节需要处理,我更喜欢使用某种框架。最好我想使用 Spring Integration,但我找不到一些简单的工作示例。

相反,我现在正在评估 Grizzly 框架,它似乎提供了我需要的功能。我实现了他们的EchoServer 示例,但发现我无法 Telnet 到服务器并且结果在控制台上回显给我。他们的 EchoClient 应用程序按预期工作。

就我而言,我无法对尝试连接到我的客户端做出任何假设,因此我必须能够支持从简单的 telnet 客户端到 NIO 客户端的所有内容。灰熊能做到这一点吗?如果可以,怎么做?

4

1 回答 1

0

您正在使用的示例基于 StringFilter 实现的特殊输入格式。StringFilter 将字符串解码/编码为带有字符串长度前缀的字节序列。确定 telnet 不使用相同的格式来编码字符串,这就是服务器不回显数据的原因。为了使服务器与 telnet 一起工作 - 只需从服务器的 FilterChain 中删除一个 StringFilter(注释掉这一行):

//          filterChainBuilder.add(new StringFilter(Charset.forName("UTF-8")));
于 2012-12-22T11:24:08.750 回答