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

戻り値

新しく作成された接続に対する 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. ただし、返された SocketRemoteEndPoint メソッドを呼び出して、リモートホストのネットワークアドレスとポート番号を識別できます。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を使用してこのメソッドを呼び出し、接続要求がキューに登録されていない場合、AcceptSocketExceptionをスローします。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.

適用対象

こちらもご覧ください