Socket.Accept メソッド

定義

新しく作成された接続に対して新しい Socket を作成します。Creates a new Socket for a newly created connection.

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

新しく作成された接続に対する SocketA Socket for a newly created connection.

例外

ソケットへのアクセスを試行しているときにエラーが発生しました。An error occurred when attempting to access the socket.

Socket が閉じられました。The Socket has been closed.

受け入れ元のソケットが、接続をリッスンしていません。The accepting socket is not listening for connections. Accept() の前に Bind(EndPoint) および Listen(Int32) を呼び出す必要があります。You must call Bind(EndPoint) and Listen(Int32) before calling Accept().

次のコード例では、単純な接続を受け入れ Socket ます。The following code example accepts a simple Socket connection.

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 ます。Accept synchronously extracts the first pending connection request from the connection request queue of the listening socket, and then creates and returns a new Socket. この返された値 Socket を使用して、接続キューからの追加の接続を受け入れることはできません。You cannot use this returned Socket to accept any additional connections from the connection queue. ただし、返されたのメソッドを呼び出して、 RemoteEndPoint Socket リモートホストのネットワークアドレスとポート番号を識別することができます。However, you can call the RemoteEndPoint method of the returned Socket to identify the remote host's network address and port number.

ブロックモードで Accept は、着信接続の試行がキューに置かれるまでブロックされます。In blocking mode, Accept blocks until an incoming connection attempt is queued. 接続が受け入れられると、元のは、 Socket 終了するまで着信接続要求をキューに挿入し続けます。Once a connection is accepted, the original Socket continues queuing incoming connection requests until you close it.

非ブロッキングを使用してこのメソッドを呼び出し、 Socket 接続要求がキューに登録されていない場合、 Accept はをスロー SocketException します。If you call this method using a non-blocking Socket, and no connection requests are queued, Accept throws a SocketException. を受け取った場合は、プロパティを使用して、 SocketException SocketException.ErrorCode 特定のエラーコードを取得します。If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. このコードを取得したら、 Windows Sockets version 2 API エラーコード のドキュメントを参照して、エラーの詳細な説明を参照してください。After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

注意

メソッドを呼び出す前に、 Accept まずメソッドを呼び出し Listen て、受信接続要求をリッスンし、キューに挿入する必要があります。Before calling the Accept method, you must first call the Listen method to listen for and queue incoming connection requests.

注意

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。This member outputs trace information when you enable network tracing in your application. 詳細については、「 .NET Framework のネットワークトレース」を参照してください。For more information, see Network Tracing in the .NET Framework.

適用対象

こちらもご覧ください