作为上位机下位机通讯的接口,老z托我写个示例程序。我误以为自己对mina掌握纯熟,便决议如此这般。
问题出在了坑爹的过滤器上。
acceptor.getFilterChain().addLast(
"codec",
new ProtocolCodecFilter(new TextLineCodecFactory(Charset
.forName("UTF-8"))));
由于对过滤器的内部构造不甚了了,所以程序跑不起来。具体见下表:
服务器端 | 客户端 | 结果 |
Mina | Mina | √ |
Java | × | |
Qt | × |
研究来去,问题应该是过滤器。Google而不得,于是找来mina的example代码学习。注意到有个MinaTimeServer小应用。
代码不贴了。
运行如下:
客户端内容:
user@myhost:~> telnet 127.0.0.1 9123
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
hello
Mon Apr 09 23:42:55 EDT 2007
quit
Connection closed by foreign host.
user@myhost:~>
服务端内容:
MINA Time server started.
Session created...
Message written...
并且,这个是以cmd方式的telnet命令测试的,这不就是我要的东西么!
总结:好好看文档才是王道。