国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

      YMP-Online-Handbuch / 服務(wù)端(Server)示例

      服務(wù)端(Server)示例

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

      #-------------------------------------
      # 服務(wù)模塊--服務(wù)端初始化參數(shù)
      #-------------------------------------
      
      # 服務(wù)端配置列表,多個(gè)服務(wù)端名稱間用'|'分隔,默認(rèn)為default
      ymp.configs.serv.server.name_list=default
      
      # 服務(wù)名稱, 默認(rèn)為default
      ymp.configs.serv.server.default.name=default
      
      # 綁定IP地址, 默認(rèn)為0.0.0.0
      ymp.configs.serv.server.default.host=0.0.0.0
      
      # 監(jiān)聽(tīng)端口號(hào), 默認(rèn)為8281
      ymp.configs.serv.server.default.port=8281
      
      # 編解碼字符集, 默認(rèn)為UTF-8
      ymp.configs.serv.server.default.charset=UTF-8
      
      # 緩沖區(qū)大小, 默認(rèn)為4096
      ymp.configs.serv.server.default.buffer_size=4096
      
      # NIO選擇器數(shù)量, 默認(rèn)為1
      ymp.configs.serv.server.default.selector_count=1
      
      # 執(zhí)行線程池大小, 默認(rèn)為10
      ymp.configs.serv.server.default.executor_count=10
      
      # 自定義參數(shù), 可選
      ymp.configs.serv.server.default.params.xxx=xxx

      通過(guò)在監(jiān)聽(tīng)器實(shí)現(xiàn)類聲明@Server注解來(lái)表示一個(gè)服務(wù)端,該注解有如下參數(shù):

      QQ截圖20170207105055.png

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


      QQ截圖20170207105121.png

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

      QQ截圖20170207105147.png
      示例代碼
      TCP服務(wù)端
      // 采用默認(rèn)配置的TCP服務(wù)端
      @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服務(wù)端
      // 采用默認(rèn)配置的UDP服務(wù)端,其中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);
          }
      }