项目在 http://susu.googlecode.com/svn/trunk/,项目里面的com.susu.test.nio下有两个测试程序simple和remotecmd。simple只是做了一个简单的测试,建立了一个简单服务器端,一个简单的客户端,当客户端连上服务器的时候,服务器给客户端发了一个报文,客户端建立了三个线程定时给服务器发报文,一段时间后客户端退出,下面来看代码实现,根据设计思想,我们必须完成下面的几个工作:
- 定义一个报文接口,报文头长度为8位,十进制表示报文的长度,例如00000004test
- 写一个TestIoHandler继承AbstractIoHandler类完成3个抽象方法
- 写一个服务器端的输入过滤器,打印收到的报文,
- 写一个服务器端的 输出过滤器,把要发送的报文加上8位的报文头,不足的补0
- 写一个客户端的输入过滤器,打印收到的报文
- 写一个客户端的 输出过滤器, 把要发送的报文加上8位的报文头,不足的补0
- 写一个服务器端启动类,监听本地ip 9000端口
- 写一个客户端的启动类,建立3个线程定时向服务器发报文
TestIoHandler的代码如下
服务器端的输入过滤器
服务器端的输出过滤器
客户端的输入过滤器
客户端输出过滤器
服务器启动类
客户端的启动类
先启动ServerTest类,然后再启动ClientTest类,就是可以在控制台和日志里面看到日志信息。