TcpListener.AcceptSocket メソッド
保留中の接続要求を受け入れます。
Public Function AcceptSocket() As Socket
[C#]
public Socket AcceptSocket();
[C++]
public: Socket* AcceptSocket();
[JScript]
public function AcceptSocket() : Socket;
戻り値
データの送受信に使用する Socket 。
例外
例外の種類 | 条件 |
---|---|
InvalidOperationException | リスナが、 Start への呼び出しで開始されていません。 |
解説
AcceptSocket は、データの送受信に使用できる Socket を返すブロッキング メソッドです。ブロックしないようにする場合は、 Pending メソッドを使用して、受信接続キュー内で接続要求を使用できるかどうかを確認します。
返される Socket は、リモート ホストの IP アドレスとポート番号を使用して初期化されます。 Socket クラスで利用できる任意の Send メソッドおよび Receive メソッドを使用して、リモート ホストと通信できます。 Socket の使用を終了したら、必ず Close メソッドを呼び出してください。アプリケーションが比較的単純な場合は、 AcceptSocket メソッドではなく AcceptTcpClient メソッドを使用することを検討してください。 TcpClient は、同期ブロッキング モードのネットワーク上でデータを送受信するための単純なメソッドを提供します。
使用例
[Visual Basic, C#, C++] AcceptSocket を使用して、 Socket を返す例を次に示します。この Socket は、新しく接続したクライアントとの通信に使用します。
' Accepts the pending client connection and returns a socket for communciation.
Dim socket As Socket = tcpListener.AcceptSocket()
Console.WriteLine("Connection accepted.")
Dim responseString As String = "You have successfully connected to me"
'Forms and sends a response string to the connected client.
Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes(responseString)
Dim i As Integer = socket.Send(sendBytes)
Console.WriteLine(("Message Sent /> : " + responseString))
[C#]
// Accepts the pending client connection and returns a socket for communciation.
Socket socket = tcpListener.AcceptSocket();
Console.WriteLine("Connection accepted.");
string responseString = "You have successfully connected to me";
//Forms and sends a response string to the connected client.
Byte[] sendBytes = Encoding.ASCII.GetBytes(responseString);
int i = socket.Send(sendBytes);
Console.WriteLine("Message Sent /> : " + responseString);
[C++]
// Accepts the pending client connection and returns a socket for communciation.
Socket* socket = tcpListener->AcceptSocket();
Console::WriteLine(S"Connection accepted.");
String* responseString = S"You have successfully connected to me";
//Forms and sends a response string to the connected client.
Byte sendBytes[] = Encoding::ASCII->GetBytes(responseString);
int i = socket->Send(sendBytes);
Console::WriteLine(S"Message Sent /> : {0}", responseString);
[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
参照
TcpListener クラス | TcpListener メンバ | System.Net.Sockets 名前空間 | AcceptTcpClient | Socket | Pending