TcpListener クラス
アセンブリ: System (system.dll 内)


TcpListener クラスは、同期ブロッキング モードのときに受信接続要求を待機したり受け取ったりする単純なメソッドを提供します。TcpListener に接続するには、TcpClient または Socket のいずれかを使用できます。IPEndPoint、ローカル IP アドレスとポート番号、またはポート番号だけを使用して、TcpListener を作成します。基になるサービス プロバイダがこれらの値を割り当てるようにするには、ローカル IP アドレスには Any を、ローカル ポート番号には 0 を指定します。このように指定した場合は、LocalEndpoint プロパティを使用すると、ソケットが接続された後で、割り当てられた情報を確認できます。
Start メソッドを使用して、受信接続要求の待機を開始します。Start は、Stop メソッドが呼び出されるか、MaxConnections がキューに置かれるまでは、受信接続要求をキューに置きます。AcceptSocket または AcceptTcpClient のいずれかを使用して、受信接続要求のキューから接続を引き出します。この 2 つのメソッドはブロックします。ブロックしないようにする場合は、まず、Pending メソッドを使用して、接続要求がキュー内で使用可能かどうかを確認します。
TcpListener を閉じるには、Stop メソッドを使用します。
![]() |
---|

Imports System Imports System.IO Imports System.Net Imports System.Net.Sockets Imports System.Text Imports Microsoft.VisualBasic Class MyTcpListener Public Shared Sub Main() Dim server As TcpListener server=nothing Try ' Set the TcpListener on port 13000. Dim port As Int32 = 13000 Dim localAddr As IPAddress = IPAddress.Parse("127.0.0.1") server = New TcpListener(localAddr, port) ' Start listening for client requests. server.Start() ' Buffer for reading data Dim bytes(1024) As Byte Dim data As String = Nothing ' Enter the listening loop. While True Console.Write("Waiting for a connection... ") ' Perform a blocking call to accept requests. ' You could also user server.AcceptSocket() here. Dim client As TcpClient = server.AcceptTcpClient() Console.WriteLine("Connected!") data = Nothing ' Get a stream object for reading and writing Dim stream As NetworkStream = client.GetStream() Dim i As Int32 ' Loop to receive all the data sent by the client. i = stream.Read(bytes, 0, bytes.Length) While (i <> 0) ' Translate data bytes to a ASCII string. data = System.Text.Encoding.ASCII.GetString(bytes, 0, i) Console.WriteLine("Received: {0}", data) ' Process the data sent by the client. data = data.ToUpper() Dim msg As Byte() = System.Text.Encoding.ASCII.GetBytes(data) ' Send back a response. stream.Write(msg, 0, msg.Length) Console.WriteLine("Sent: {0}", data) i = stream.Read(bytes, 0, bytes.Length) End While ' Shutdown and end connection client.Close() End While Catch e As SocketException Console.WriteLine("SocketException: {0}", e) Finally server.Stop() End Try Console.WriteLine(ControlChars.Cr + "Hit enter to continue....") Console.Read() End Sub 'Main End Class 'MyTcpListener
using System; using System.IO; using System.Net; using System.Net.Sockets; using System.Text; class MyTcpListener { public static void Main() { TcpListener server=null; try { // Set the TcpListener on port 13000. Int32 port = 13000; IPAddress localAddr = IPAddress.Parse("127.0.0.1"); // TcpListener server = new TcpListener(port); server = new TcpListener(localAddr, port); // Start listening for client requests. server.Start(); // Buffer for reading data Byte[] bytes = new Byte[256]; String data = null; // Enter the listening loop. while(true) { Console.Write("Waiting for a connection... "); // Perform a blocking call to accept requests. // You could also user server.AcceptSocket() here. TcpClient client = server.AcceptTcpClient(); Console.WriteLine("Connected!"); data = null; // Get a stream object for reading and writing NetworkStream stream = client.GetStream(); int i; // Loop to receive all the data sent by the client. while((i = stream.Read(bytes, 0, bytes.Length))!=0) { // Translate data bytes to a ASCII string. data = System.Text.Encoding.ASCII.GetString(bytes, 0, i); Console.WriteLine("Received: {0}", data); // Process the data sent by the client. data = data.ToUpper(); byte[] msg = System.Text.Encoding.ASCII.GetBytes(data); // Send back a response. stream.Write(msg, 0, msg.Length); Console.WriteLine("Sent: {0}", data); } // Shutdown and end connection client.Close(); } } catch(SocketException e) { Console.WriteLine("SocketException: {0}", e); } finally { // Stop listening for new clients. server.Stop(); } Console.WriteLine("\nHit enter to continue..."); Console.Read(); } }
#using <System.dll> using namespace System; using namespace System::IO; using namespace System::Net; using namespace System::Net::Sockets; using namespace System::Text; using namespace System::Threading; void main() { try { // Set the TcpListener on port 13000. Int32 port = 13000; IPAddress^ localAddr = IPAddress::Parse( "127.0.0.1" ); // TcpListener* server = new TcpListener(port); TcpListener^ server = gcnew TcpListener( localAddr,port ); // Start listening for client requests. server->Start(); // Buffer for reading data array<Byte>^bytes = gcnew array<Byte>(256); String^ data = nullptr; // Enter the listening loop. while ( true ) { Console::Write( "Waiting for a connection... " ); // Perform a blocking call to accept requests. // You could also user server.AcceptSocket() here. TcpClient^ client = server->AcceptTcpClient(); Console::WriteLine( "Connected!" ); data = nullptr; // Get a stream Object* for reading and writing NetworkStream^ stream = client->GetStream(); Int32 i; // Loop to receive all the data sent by the client. while ( i = stream->Read( bytes, 0, bytes->Length ) ) { // Translate data bytes to a ASCII String*. data = Text::Encoding::ASCII->GetString( bytes, 0, i ); Console::WriteLine( "Received: {0}", data ); // Process the data sent by the client. data = data->ToUpper(); array<Byte>^msg = Text::Encoding::ASCII->GetBytes( data ); // Send back a response. stream->Write( msg, 0, msg->Length ); Console::WriteLine( "Sent: {0}", data ); } // Shutdown and end connection client->Close(); } } catch ( SocketException^ e ) { Console::WriteLine( "SocketException: {0}", e ); } Console::WriteLine( "\nHit enter to continue..." ); Console::Read(); }


System.Net.Sockets.TcpListener


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- TcpListener クラスのページへのリンク