TcpListener クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
TCP ネットワーク クライアントからの接続をリッスンします。
public ref class TcpListener
public ref class TcpListener : IDisposable
public class TcpListener
public class TcpListener : IDisposable
type TcpListener = class
type TcpListener = class
interface IDisposable
Public Class TcpListener
Public Class TcpListener
Implements IDisposable
- 継承
-
TcpListener
- 実装
例
次のコード例では、 を作成します TcpListener。
#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 use 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();
}
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 use server.AcceptSocket() here.
using 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);
}
}
}
catch(SocketException e)
{
Console.WriteLine("SocketException: {0}", e);
}
finally
{
server.Stop();
}
Console.WriteLine("\nHit enter to continue...");
Console.Read();
}
}
Imports System.IO
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
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 use 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
End Class
クライアントの例については、 を参照してください TcpClient 。
注釈
クラスは TcpListener 、ブロッキング同期モードで受信接続要求をリッスンして受け入れる単純なメソッドを提供します。 または Socket のいずれかをTcpClient使用して、 にTcpListener接続できます。 TcpListener、ローカル IP アドレスとポート番号、またはポート番号のみを使用して IPEndPointをCreateします。 基になるサービス プロバイダーにこれらの値を割り当てる場合は、ローカル IP アドレスに、ローカル ポート番号には 0 を指定 Any します。 これを行う場合は、 プロパティを LocalEndpoint 使用して、ソケットが接続された後に割り当てられた情報を識別できます。
メソッドを Start 使用して、着信接続要求のリッスンを開始します。 Start は、 メソッドを呼び出すか、キューに Stop 入るまで、着信接続をキューに入 MaxConnectionsれます。 または AcceptTcpClient をAcceptSocket使用して、受信接続要求キューから接続をプルします。 これら 2 つのメソッドはブロックされます。 ブロックを回避する場合は、最初に メソッドを Pending 使用して、接続要求がキューで使用可能かどうかを判断できます。
メソッドを Stop 呼び出して を TcpListener閉じます。
注意
メソッドは Stop 、受け入れられた接続を閉じません。 これらを個別に閉じる必要があります。
コンストラクター
TcpListener(Int32) |
古い.
古い.
古い.
古い.
指定したポートを待機する TcpListener クラスの新しいインスタンスを初期化します。 |
TcpListener(IPAddress, Int32) |
指定したローカル IP アドレスとポート番号で受信接続の試行を待機する、TcpListener クラスの新しいインスタンスを初期化します。 |
TcpListener(IPEndPoint) |
指定したローカル エンドポイントを使用して、TcpListener クラスの新しいインスタンスを初期化します。 |
プロパティ
Active |
TcpListener がクライアント接続をアクティブに待機しているかどうかを示す値を取得します。 |
ExclusiveAddressUse |
TcpListener で、1 つの基になるソケットだけに特定のポートの待機を許可するかどうかを指定する Boolean 値を取得または設定します。 |
LocalEndpoint |
現在の TcpListener の基になる EndPoint を取得します。 |
Server |
基になるネットワーク Socket を取得します。 |
メソッド
AcceptSocket() |
保留中の接続要求を受け入れます。 |
AcceptSocketAsync() |
保留中の接続要求を非同期操作として受け入れます。 |
AcceptSocketAsync(CancellationToken) |
保留中の接続要求を取り消し可能な非同期操作として受け入れます。 |
AcceptTcpClient() |
保留中の接続要求を受け入れます。 |
AcceptTcpClientAsync() |
保留中の接続要求を非同期操作として受け入れます。 |
AcceptTcpClientAsync(CancellationToken) |
保留中の接続要求を取り消し可能な非同期操作として受け入れます。 |
AllowNatTraversal(Boolean) |
TcpListener インスタンスのネットワーク アドレス変換 (NAT: Network Address Translation) トラバーサルを有効または無効にします。 |
BeginAcceptSocket(AsyncCallback, Object) |
受信接続の試行を受け入れる非同期操作を開始します。 |
BeginAcceptTcpClient(AsyncCallback, Object) |
受信接続の試行を受け入れる非同期操作を開始します。 |
Create(Int32) |
指定したポートをリッスンする新しい TcpListener インスタンスを作成します。 |
Dispose() |
現在の TcpListener インスタンスによって使用されているすべてのリソースを解放します。 |
EndAcceptSocket(IAsyncResult) |
受信接続の試行を非同期的に受け入れ、新しい Socket を作成してリモート ホスト通信を処理します。 |
EndAcceptTcpClient(IAsyncResult) |
受信接続の試行を非同期的に受け入れ、新しい TcpClient を作成してリモート ホスト通信を処理します。 |
Equals(Object) |
指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
Finalize() |
TcpListener クラスによって使用されていたリソースを解放します。 |
GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
Pending() |
保留中の接続要求があるかどうかを確認します。 |
Start() |
受信接続要求のリッスンを開始します。 |
Start(Int32) |
最大数の保留中の接続がある状態で、受信接続要求のリッスンを開始します。 |
Stop() |
リスナーを閉じます。 |
ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
適用対象
こちらもご覧ください
.NET