Socket.Accept メソッド

定義

新しく作成された接続に対して新しい Socket を作成します。

public:
 System::Net::Sockets::Socket ^ Accept();
public System.Net.Sockets.Socket Accept ();
member this.Accept : unit -> System.Net.Sockets.Socket
Public Function Accept () As Socket

戻り値

新しく作成された接続に対する Socket

例外

ソケットへのアクセスを試行しているときにエラーが発生しました。

Socket が閉じられました。

受け入れ元のソケットが、接続をリッスンしていません。 Accept() の前に Bind(EndPoint) および Listen(Int32) を呼び出す必要があります。

次のコード例では、単純 Socket な接続を受け入れます。

protected:
   void AcceptMethod( Socket^ listeningSocket )
   {
      Socket^ mySocket = listeningSocket->Accept();
   }
protected void AcceptMethod(Socket listeningSocket)
{
    Socket mySocket = listeningSocket.Accept();
}
   Protected Sub AcceptMethod(listeningSocket As Socket)
       

Dim mySocket As Socket = listeningSocket.Accept()
       
   End Sub

注釈

Accept は、リッスンしているソケットの接続要求キューから最初の保留中の接続要求を同期的に抽出し、新 Socketしい を作成して返します。 この値を Socket 使用して、接続キューからの追加の接続を受け入れることはできません。 ただし、返された Socket の メソッドをRemoteEndPoint呼び出して、リモート ホストのネットワーク アドレスとポート番号を識別できます。

ブロッキング モードでは、 Accept 着信接続の試行がキューに登録されるまでブロックします。 接続が受け入れられると、元 Socket のは受信接続要求を閉じるまでキューに入れ続けます。

非ブロッキング Socketを使用してこのメソッドを呼び出し、接続要求がキューに入っていない場合、 Accept は を SocketExceptionスローします。 を受け取った場合は SocketException、 プロパティを SocketException.ErrorCode 使用して特定のエラー コードを取得します。 このコードを取得したら、エラーの詳細な説明については、 Windows ソケット バージョン 2 API エラー コード のドキュメントを参照してください。

注意

メソッドを呼び出す前に Accept 、まず メソッドを Listen 呼び出して受信接続要求をリッスンし、キューに入る必要があります。

Note

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。 詳細については、「.NET Frameworkのネットワーク トレース」を参照してください。

適用対象

こちらもご覧ください