クラス TcpNioServerConnectionFactory

実装済みのインターフェース一覧:
RunnableSE, Aware, BeanFactoryAware, BeanNameAware, InitializingBean, ApplicationContextAware, ApplicationEventPublisherAware, Lifecycle, ComponentSourceAware, ExpressionCapable, OrderlyShutdownCapable, ConnectionFactory, TcpServerConnectionFactory, NamedComponent, ManageableLifecycle, SchedulingAwareRunnable

public class TcpNioServerConnectionFactory extends AbstractServerConnectionFactory
/** Implements a server connection factory that produces TcpNioConnection s using a ServerSocketChannelSE . Must have a TcpListener registered.
導入:
2.0
作成者:
Gary Russell, Artem Bilan, Ngoc Nhan
  • コンストラクターの詳細

    • TcpNioServerConnectionFactory

      public TcpNioServerConnectionFactory(int port)
      ポートの受信接続を待機します。
      パラメーター:
      port - ポート。
  • 方法の詳細

    • setMultiAccept

      public void setMultiAccept(boolean multiAccept)
      false に設定すると、セレクタキーの反復処理ごとに 1 つの接続のみを受け入れます。これは、既存のソケットへの過剰な読み取りを避けるために必要になる場合があります。デフォルトでは、OP_ACCEPT 操作の準備ができると、接続がなくなるまでループで接続を受け入れ続けます。
      パラメーター:
      multiAccept - 一度に 1 つずつ接続を受け入れる場合は false。
      導入:
      5.1.4
    • getComponentType

      public StringSE getComponentType()
      次で指定:
      インターフェース NamedComponent 内の getComponentType 
      オーバーライド:
      クラス AbstractConnectionFactorygetComponentType 
    • getPort

      public int getPort()
      インターフェースからコピーされた説明: TcpServerConnectionFactory
      このサーバーがリッスンしているポートを返します。ファクトリがランダムポート (0) でリッスンするように構成されている場合、ファクトリの起動後に実際のポートが返されます。ファクトリが停止すると、以前の値を返す場合があります。
      次で指定:
      インターフェース TcpServerConnectionFactory 内の getPort 
      オーバーライド:
      クラス AbstractConnectionFactorygetPort 
      戻り値:
    • getServerSocketAddress

      public @Nullable SocketAddressSE getServerSocketAddress()
      インターフェースからコピーされた説明: TcpServerConnectionFactory
      基になる ServerSocket がバインドされている SocketAddressSE を返します。
      戻り値:
      ソケットアドレス。
    • run

      public void run()
      リスナーが登録されていない場合は、終了します。受信接続を受け入れ、新しい接続ごとに TcpConnections を作成します。{AbstractServerConnectionFactory.initializeConnection(TcpConnectionSupport, Socket) を呼び出し、タスクエグゼキュータを使用して接続 Runnable.run() を実行します。サーバーソケット / チャネルの I/O エラーがログに記録され、ファクトリが停止します。
    • doAccept

      protected void doAccept(SelectorSE selectorForNewSocket, ServerSocketChannelSE server, long now)
      オーバーライド:
      クラス AbstractConnectionFactorydoAccept 
      パラメーター:
      selectorForNewSocket - セレクタ。
      server - サーバーソケットチャネル。
      now - 現在の時刻。
    • stop

      public void stop()
      クラスからコピーされた説明: AbstractConnectionFactory
      サーバーの停止。
      次で指定:
      インターフェース Lifecycle 内の stop 
      次で指定:
      インターフェース ManageableLifecycle 内の stop 
      オーバーライド:
      クラス AbstractConnectionFactorystop 
    • setUsingDirectBuffers

      public void setUsingDirectBuffers(boolean usingDirectBuffers)
      ダイレクトバッファを使用するには、true に設定します。
      パラメーター:
      usingDirectBuffers - 直接の場合は true。
    • setTcpNioConnectionSupport

      public void setTcpNioConnectionSupport(TcpNioConnectionSupport tcpNioSupport)
      使用する TcpNioConnectionSupport を設定します。
      パラメーター:
      tcpNioSupport - TcpNioConnectionSupport
    • getServerChannel

      protected @Nullable ServerSocketChannelSE getServerChannel()
      戻り値:
      serverChannel
    • isUsingDirectBuffers

      protected boolean isUsingDirectBuffers()
      戻り値:
      usingDirectBuffers
    • getConnections

      protected MapSE<SocketChannelSE, TcpNioConnection> getConnections()
      戻り値:
      接続