最近一年接觸到些使用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)不知道消息長度的情況下,循環讀取寫入的整個消息;
運行界面如圖:
源代碼和Jar包見下面附件,同時提供一個簡單的EchoServer。
點擊下載
新聞熱點
疑難解答