近一年接触到些使用Java NIO编写的服务器程序,客户程序通过建立Socket连接并发送消息的方式调用服务端提供的交易接口。
  开发的时候通常需要发些消息来调试程序,所以自己动手写了个工具。工具使用Swing编写,主要作用是向指定的IP、端口发送请求消息,并接收响应消息。非常简单,但是足够了。
  源代码涉及到以下内容:
  (1)Java Swing编程中的EDT线程与任务线程,在后台任务线程中执行耗时操作,并在适当的时候更新UI;
  (2)提供一种Swing界面的构造方式:构造Component、加载数据、添加Listener;
  (3)GridBagLayout使用;
  (4)使用TitledBorder创建类似于GroupBox效果的控件;
  (5)通用的UIUpdater类,供后台线程更新UI,解耦合后台线程和UI Component(可以更加完善);
  (6)因为Swing API大多不是线程安全的,所以将所有对UI的更新都放到EDT线程,包括Main函数中创建顶层JFrame的代码;
  (7)NIO SocketChannel发送和接收消息;
  (8)不知道消息长度的情况下,循环读取写入的整个消息;
  运行界面如图: