最近一年接觸到些使用Java NIO編寫的服務(wù)器程序,客戶程序通過建立Socket連接并發(fā)送消息的方式調(diào)用服務(wù)端提供的交易接口。
開發(fā)的時(shí)候通常需要發(fā)些消息來調(diào)試程序,所以自己動手寫了個(gè)工具。工具使用Swing編寫,主要作用就是向指定的ip、端口發(fā)送請求消息,并接收響應(yīng)消息。非常簡單,但是足夠了。
源代碼涉及到以下內(nèi)容:
(1)Java Swing編程中的EDT線程與任務(wù)線程,在后臺任務(wù)線程中執(zhí)行耗時(shí)操作,并在適當(dāng)?shù)臅r(shí)候更新UI;
(2)提供一種Swing界面的構(gòu)造方式:構(gòu)造Component、加載數(shù)據(jù)、添加Listener;
(3)GridBagLayout使用;
(4)使用TitledBorder創(chuàng)建類似于GroupBox效果的控件;
(5)通用的UIUpdater類,供后臺線程更新UI,解耦合后臺線程和UI Component(可以更加完善);
(6)因?yàn)镾wing API大多不是線程安全的,所以將所有對UI的更新都放到EDT線程,包括Main函數(shù)中創(chuàng)建頂層JFrame的代碼;
(7)NIO SocketChannel發(fā)送和接收消息;
(8)不知道消息長度的情況下,循環(huán)讀取寫入的整個(gè)消息;
運(yùn)行界面如圖:

源代碼和Jar包見下面附件,同時(shí)提供一個(gè)簡單的EchoServer。
點(diǎn)擊下載
新聞熱點(diǎn)
疑難解答
圖片精選