次の方法で共有


Socket.Accept メソッド

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

Public Function Accept() As Socket
[C#]
public Socket Accept();
[C++]
public: Socket* Accept();
[JScript]
public function Accept() : Socket;

戻り値

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

例外

例外の種類 条件
SocketException ソケットへのアクセスを試みているときにエラーが発生しました。詳細については、「解説」を参照してください。
ObjectDisposedException Socket は閉じられています。
InvalidOperationException Socket がバインドされていません。 Accept の前に Bind を呼び出す必要があります。

解説

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

ブロッキング モードでは、 Accept は、受信接続の試行がキューに置かれるまでブロックします。接続を受け取ったら、元の Socket は、その接続を閉じるまで受信接続要求をキューに置き続けます。

このメソッドを非ブロッキング Socket を使用して呼び出しており、接続要求がキューに置かれていない場合、 AcceptSocketException をスローします。 SocketException が発生した場合は、 SocketException.ErrorCode を使用して具体的なエラー コードを取得してください。このコードを取得したら、Windows Socket Version 2 API エラー コードのマニュアルから、エラーの詳細情報を確認できます。これは MSDN から入手できます。

メモ    Accept メソッドを呼び出す前に、まず Listen メソッドを呼び出して、受信接続要求を待機してキューに置いておく必要があります。

使用例

[Visual Basic, C#, C++] 単純な Socket 接続を受け入れる例を次に示します。

 
Dim mySocket As Socket = listeningSocket.Accept()
       
If mySocket Is Nothing Then
    Console.WriteLine("Winsock error: " & _
       Convert.ToString( _
       System.Runtime.InteropServices.Marshal.GetLastWin32Error()))
End If


[C#] 
Socket mySocket = listeningSocket.Accept();

if (mySocket == null)
{
   Console.WriteLine("Winsock error: " + 
   Convert.ToString(System.Runtime.InteropServices.Marshal.GetLastWin32Error()) );
}
   

[C++] 
Socket* mySocket = listeningSocket->Accept();

if (mySocket == 0)
{
   Console::WriteLine(S"Winsock error: {0}", Convert::ToString(System::Runtime::InteropServices::Marshal::GetLastWin32Error()) );
}
   

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard

参照

Socket クラス | Socket メンバ | System.Net.Sockets 名前空間 | Listen | RemoteEndPoint | Socket.BeginAccept