99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

服務端(Server)示例

2018-12-24 22:33 更新

服務端初始化參數(shù):

#-------------------------------------
# 服務模塊--服務端初始化參數(shù)
#-------------------------------------

# 服務端配置列表,多個服務端名稱間用'|'分隔,默認為default
ymp.configs.serv.server.name_list=default

# 服務名稱, 默認為default
ymp.configs.serv.server.default.name=default

# 綁定IP地址, 默認為0.0.0.0
ymp.configs.serv.server.default.host=0.0.0.0

# 監(jiān)聽端口號, 默認為8281
ymp.configs.serv.server.default.port=8281

# 編解碼字符集, 默認為UTF-8
ymp.configs.serv.server.default.charset=UTF-8

# 緩沖區(qū)大小, 默認為4096
ymp.configs.serv.server.default.buffer_size=4096

# NIO選擇器數(shù)量, 默認為1
ymp.configs.serv.server.default.selector_count=1

# 執(zhí)行線程池大小, 默認為10
ymp.configs.serv.server.default.executor_count=10

# 自定義參數(shù), 可選
ymp.configs.serv.server.default.params.xxx=xxx

通過在監(jiān)聽器實現(xiàn)類聲明@Server注解來表示一個服務端,該注解有如下參數(shù):

參數(shù)說明
name設置服務的名稱,Serv框架將會根據(jù)該參數(shù)指定的名稱加載對應的服務端參數(shù)配置,默認為default;
codec設置編解碼器,默認為NioStringCodec;
implClass服務端實現(xiàn)類,默認為NioServer;

基于TCP協(xié)議的服務端,需要繼承NioServerListener監(jiān)聽器類,支持監(jiān)聽如下事件:

事件說明
onSessionAccepted客戶端成功接入服務端后觸發(fā)該事件;
onBeforeSessionClosed客戶端會話被關閉之前觸發(fā)該事件;
onAfterSessionClosed客戶端會話被關閉之后觸發(fā)該事件;
onMessageReceived收到客戶端發(fā)送的消息時觸發(fā)該事件;
onExceptionCaught出現(xiàn)異常時觸發(fā)該事件;

基于UDP協(xié)議的服務端,需要繼承NioUdpListener監(jiān)聽器類,支持監(jiān)聽如下事件:

事件說明
onSessionReady客戶端與服務端連接已建立并準備就緒時觸發(fā)該事件;
onMessageReceived收到客戶端發(fā)送的消息時觸發(fā)該事件;
onExceptionCaught出現(xiàn)異常時觸發(fā)該事件;
示例代碼
TCP服務端
// 采用默認配置的TCP服務端
@Server
public class TcpServer extends NioServerListener {
    @Override
    public void onSessionAccepted(INioSession session) throws IOException {
        super.onSessionAccepted(session);
    }

    @Override
    public void onMessageReceived(Object message, INioSession session) throws IOException {
        super.onMessageReceived(message, session);
        // 輸出接收到的消息
        System.out.println("Message received: " + message);
        // 向客戶端發(fā)送消息
        session.send("Hi, guys!");
    }

    @Override
    public void onAfterSessionClosed(INioSession session) throws IOException {
        super.onAfterSessionClosed(session);
    }

    @Override
    public void onBeforeSessionClosed(INioSession session) throws IOException {
        super.onBeforeSessionClosed(session);
    }
}
UDP服務端
// 采用默認配置的UDP服務端,其中implClass參數(shù)必須指定為NioUpdServer.class
@Server(implClass = NioUdpServer.class, codec = TextLineCodec.class)
public class UdpServer extends NioUdpListener {

    public Object onSessionReady() throws IOException {
        // 此接口方法的返回值將作為消息發(fā)送至客戶端
        return null;
    }

    public Object onMessageReceived(InetSocketAddress sourceAddr, Object message) throws IOException {
        // 輸出接收到的消息
        System.out.println("Message received: " + message);
        // 此接口方法的返回值將作為消息發(fā)送至客戶端
        return message;
    }

    public void onExceptionCaught(InetSocketAddress sourceAddr, Throwable e) throws IOException {
        System.out.println(sourceAddr + "--->" + e);
    }
}
以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號