最近一年接触到些使用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的代码;
(6)NIO SocketChannel发送和接收消息;
(7)不知道消息长度的情况下,循环读取写入的整个消息;
运行界面如图:
源代码和Jar包下面附件,同时提供一个简单的EchoServer。
时间: 2024-12-18 18:50:48