MINA入門使用

2021-09-01 12:11:02 字數 1960 閱讀 7300

mina作為高效能的可應對高併發訪問的nio框架,特性就不多介紹了。下面提供一些使用的例項。

伺服器端**:

/**

* description 用來啟動mina服務端

* @author administrator

* 2012-10-21

*/public class minatimeserver

}

伺服器端程式的業務處理器:

/**

* description 業務邏輯處理器timeserverhandler,繼承自iohandleradapter,

* 實現的功能有:當客戶端建立會話時會顯示客戶端裝置的ip和埠;當客戶端輸入quit時結束會話;客戶端輸入其它內容時則向客戶端傳送當前時間。

* @author administrator

* 2012-10-21

*/public class timeserverhandler extends iohandleradapter

@override

public void messagereceived(iosession session, object message)

throws exception

date date = new date();

session.write("server return to client: " + date.tostring()); //返回當前時間的字串

system.out.println("message written..." + str);

}}

這時可以進行測試前面的**,用命令列中輸入:

telnet 127.0.0.1 9123

伺服器端會收到客戶端的連線資訊,顯示:

client ip:/127.0.0.1:3815

然後在telent視窗中輸入字元:test123

伺服器端會列印:message written...test123

客戶端顯示伺服器端返回的資訊:server return to client: sun oct 21 17:22:09 cst 2012

可看出mina的客戶端和伺服器端可以相互進行通訊。

下面是mina客戶端的連線類**:

/**

* description minatimeclient類用於連線服務端,並向服務端傳送訊息

* @author administrator

* 2012-10-21

*/public class minatimeclient

}

客戶端連線類用到的處理器**:

/**

* description timeclienthandler處理訊息接收事件

* @author administrator

* 2012-10-21

*/public class timeclienthandler extends iohandleradapter

@override

public void messagereceived(iosession session, object message)

throws exception

}

啟動程式測試:

開始->執行->cmd->tecnet 127.0.0.1 9123

通過jdk自帶工具jvisualvm檢視執行緒:

可看到幾個執行緒:

niosocketacceptor-1為伺服器端監聽埠9999通過執行緒池建立的乙個執行緒。

nioprocessor-2為ioprocessor執行緒池建立的執行緒,用來io處理。

pool-3-thread-3為過濾器配置的執行緒池建立的執行緒,用來業務邏輯處理。

MINA框架應用入門範例

一 mina框架簡介 二 mina框架的常用類 ioaccepter 相當於伺服器端 ioconnector 相當於客戶端 iosession 當前客戶端到伺服器端的乙個連線例項 iohandler 業務處理邏輯 iofilter 過濾器用於懸接通訊層介面與業務層介面 三 範例源 下面的介紹以 ap...

Xsocket與Mina使用感受

mina使用了一次,有一段時間沒關注了。不過其的用法和功能還記得。mina是乙個大型一點的網路框架,支援多種協議,使用起來也較簡單,其 中提供的原始碼中含有example,不過有一些情況下需要擴充套件其過濾器類。支援非同步。其主要方法為 onmessage xsocket剛使用,現在正在使用中。xs...

MINA2 0簡單使用

一直知道mina是apache 開發的乙個開發socket程式設計框架,但一直沒弄清楚mina2.0裡的多執行緒該如何處理,根據apache提供的文件,使用mina2.0開發多執行緒的程式變的非常簡單,只用在其filter中加入執行緒池就可以了,感覺挺神奇,於是參考apache的其他專案,寫了個小例...