UdpClient クラス

定義

ユーザー データグラム プロトコル (UDP) のネットワーク サービスを提供します。Provides User Datagram Protocol (UDP) network services.

public ref class UdpClient : IDisposable
public class UdpClient : IDisposable
type UdpClient = class
    interface IDisposable
Public Class UdpClient
Implements IDisposable
継承
UdpClient
実装

次の例では、 UdpClient ポート11000でホスト名を使用して接続を確立し www.contoso.com ます。The following example establishes a UdpClient connection using the host name www.contoso.com on port 11000. 小さい文字列のメッセージは、2つの異なるリモートホストコンピューターに送信されます。A small string message is sent to two separate remote host machines. メソッドは、 Receive メッセージが受信されるまで実行をブロックします。The Receive method blocks execution until a message is received. に渡されたを使用すると、応答している IPEndPoint Receive ホストの id が明らかになります。Using the IPEndPoint passed to Receive, the identity of the responding host is revealed.

// With this constructor the local port number is arbitrarily assigned.
UdpClient^ udpClient = gcnew UdpClient;
try
{
   udpClient->Connect( "host.contoso.com", 11000 );

   // Send message to the host to which you have connected.
   array<Byte>^sendBytes = Encoding::ASCII->GetBytes( "Is anybody there?" );
   udpClient->Send( sendBytes, sendBytes->Length );

   // Send message to a different host using optional hostname and port parameters.
   UdpClient^ udpClientB = gcnew UdpClient;
   udpClientB->Send( sendBytes, sendBytes->Length, "AlternateHostMachineName", 11000 );

   //IPEndPoint object will allow us to read datagrams sent from any source.
   IPEndPoint^ RemoteIpEndPoint = gcnew IPEndPoint( IPAddress::Any,0 );

   // Block until a message returns on this socket from a remote host.
   array<Byte>^receiveBytes = udpClient->Receive( RemoteIpEndPoint );
   String^ returnData = Encoding::ASCII->GetString( receiveBytes );

   // Use the IPEndPoint object to determine which of these two hosts responded.
   Console::WriteLine( String::Concat( "This is the message you received ", returnData->ToString() ) );
   Console::WriteLine( String::Concat( "This message was sent from ", RemoteIpEndPoint->Address->ToString(), " on their port number ", RemoteIpEndPoint->Port.ToString() ) );
   udpClient->Close();
   udpClientB->Close();
}
catch ( Exception^ e ) 
{
   Console::WriteLine( e->ToString() );
}
// This constructor arbitrarily assigns the local port number.
UdpClient udpClient = new UdpClient(11000);
    try{
         udpClient.Connect("www.contoso.com", 11000);

         // Sends a message to the host to which you have connected.
         Byte[] sendBytes = Encoding.ASCII.GetBytes("Is anybody there?");

         udpClient.Send(sendBytes, sendBytes.Length);

         // Sends a message to a different host using optional hostname and port parameters.
         UdpClient udpClientB = new UdpClient();
         udpClientB.Send(sendBytes, sendBytes.Length, "AlternateHostMachineName", 11000);

         //IPEndPoint object will allow us to read datagrams sent from any source.
         IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Any, 0);

         // Blocks until a message returns on this socket from a remote host.
         Byte[] receiveBytes = udpClient.Receive(ref RemoteIpEndPoint);
         string returnData = Encoding.ASCII.GetString(receiveBytes);

         // Uses the IPEndPoint object to determine which of these two hosts responded.
         Console.WriteLine("This is the message you received " +
                                      returnData.ToString());
         Console.WriteLine("This message was sent from " +
                                     RemoteIpEndPoint.Address.ToString() +
                                     " on their port number " +
                                     RemoteIpEndPoint.Port.ToString());

          udpClient.Close();
          udpClientB.Close();
          }
       catch (Exception e ) {
                  Console.WriteLine(e.ToString());
        }
     ' This constructor arbitrarily assigns the local port number.
     Dim udpClient As New UdpClient(11000)
     Try
        udpClient.Connect("www.contoso.com", 11000)
        
        ' Sends a message to the host to which you have connected.
        Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes("Is anybody there?")
        
        udpClient.Send(sendBytes, sendBytes.Length)
        
        ' Sends message to a different host using optional hostname and port parameters.
        Dim udpClientB As New UdpClient()
        udpClientB.Send(sendBytes, sendBytes.Length, "AlternateHostMachineName", 11000)
        
        ' IPEndPoint object will allow us to read datagrams sent from any source.
        Dim RemoteIpEndPoint As New IPEndPoint(IPAddress.Any, 0)
        
        ' UdpClient.Receive blocks until a message is received from a remote host.
        Dim receiveBytes As [Byte]() = udpClient.Receive(RemoteIpEndPoint)
        Dim returnData As String = Encoding.ASCII.GetString(receiveBytes)
        
        ' Which one of these two hosts responded?
        Console.WriteLine(("This is the message you received " + _
                                      returnData.ToString()))
         Console.WriteLine(("This message was sent from " + _
                                      RemoteIpEndPoint.Address.ToString() + _ 
                                      " on their port number " + _
                                      RemoteIpEndPoint.Port.ToString()))
        udpClient.Close()
        udpClientB.Close()

     Catch e As Exception
        Console.WriteLine(e.ToString())
     End Try
  End Sub 

注釈

クラスは、 UdpClient ブロック同期モードでコネクションレス UDP データグラムを送受信するための単純なメソッドを提供します。The UdpClient class provides simple methods for sending and receiving connectionless UDP datagrams in blocking synchronous mode. UDP はコネクションレストランスポートプロトコルであるため、データを送受信する前にリモートホスト接続を確立する必要はありません。Because UDP is a connectionless transport protocol, you do not need to establish a remote host connection prior to sending and receiving data. ただし、次の2つの方法のいずれかで既定のリモートホストを確立することもできます。You do, however, have the option of establishing a default remote host in one of the following two ways:

  • UdpClientパラメーターとしてリモートホスト名とポート番号を使用して、クラスのインスタンスを作成します。Create an instance of the UdpClient class using the remote host name and port number as parameters.

  • クラスのインスタンスを作成 UdpClient し、メソッドを呼び出し Connect ます。Create an instance of the UdpClient class and then call the Connect method.

で提供されているいずれかの送信方法を使用して、 UdpClient リモートデバイスにデータを送信できます。You can use any of the send methods provided in the UdpClient to send data to a remote device. Receiveリモートホストからデータを受信するには、メソッドを使用します。Use the Receive method to receive data from remote hosts.

注意

Sendホスト名を使用してを呼び出さないでください。または、 IPEndPoint 既定のリモートホストが既に指定されている場合はを呼び出しません。Do not call Send using a host name or IPEndPoint if you have already specified a default remote host. 実行すると、 UdpClient は例外をスローします。If you do, UdpClient will throw an exception.

UdpClient メソッドを使用すると、マルチキャストデータグラムを送受信することもできます。UdpClient methods also allow you to send and receive multicast datagrams. メソッドを使用して JoinMulticastGroup 、を UdpClient マルチキャストグループにサブスクライブします。Use the JoinMulticastGroup method to subscribe a UdpClient to a multicast group. メソッドを使用して DropMulticastGroupUdpClient マルチキャストグループからの登録を解除します。Use the DropMulticastGroup method to unsubscribe a UdpClient from a multicast group.

コンストラクター

UdpClient()

UdpClient クラスの新しいインスタンスを初期化します。Initializes a new instance of the UdpClient class.

UdpClient(AddressFamily)

UdpClient クラスの新しいインスタンスを初期化します。Initializes a new instance of the UdpClient class.

UdpClient(Int32)

UdpClient クラスの新しいインスタンスを初期化し、指定したローカル ポート番号にバインドします。Initializes a new instance of the UdpClient class and binds it to the local port number provided.

UdpClient(Int32, AddressFamily)

UdpClient クラスの新しいインスタンスを初期化し、指定したローカル ポート番号にバインドします。Initializes a new instance of the UdpClient class and binds it to the local port number provided.

UdpClient(IPEndPoint)

UdpClient クラスの新しいインスタンスを初期化し、指定したローカル エンドポイントにバインドします。Initializes a new instance of the UdpClient class and binds it to the specified local endpoint.

UdpClient(String, Int32)

UdpClient クラスの新しいインスタンスを初期化し、既定のリモート ホストを確立します。Initializes a new instance of the UdpClient class and establishes a default remote host.

プロパティ

Active

既定のリモート ホストが確立されたかどうかを示す値を取得または設定します。Gets or sets a value indicating whether a default remote host has been established.

Available

読み取りが可能なネットワークから受信したデータの量を取得します。Gets the amount of data received from the network that is available to read.

Client

基になるネットワーク Socket を取得または設定します。Gets or sets the underlying network Socket.

DontFragment

UdpClient でインターネット プロトコル (IP) データグラムの断片化を許可するかどうかを指定する Boolean 値を、取得または設定します。Gets or sets a Boolean value that specifies whether the UdpClient allows Internet Protocol (IP) datagrams to be fragmented.

EnableBroadcast

Boolean がブロードキャスト パケットの送受信を許可するかどうかを指定する UdpClient 値を取得または設定します。Gets or sets a Boolean value that specifies whether the UdpClient may send or receive broadcast packets.

ExclusiveAddressUse

UdpClient で 1 つのクライアントだけがポートを使用できるかどうかを指定する Boolean 値を取得または設定します。Gets or sets a Boolean value that specifies whether the UdpClient allows only one client to use a port.

MulticastLoopback

発信マルチキャスト パケットが送信元アプリケーションに配信されるかどうかを指定する Boolean 値を取得または設定します。Gets or sets a Boolean value that specifies whether outgoing multicast packets are delivered to the sending application.

Ttl

UdpClient によって送信されたインターネット プロトコル (IP) パケットの有効期間 (TTL) の値を指定する値を取得または設定します。Gets or sets a value that specifies the Time to Live (TTL) value of Internet Protocol (IP) packets sent by the UdpClient.

メソッド

AllowNatTraversal(Boolean)

UdpClient インスタンスのネットワーク アドレス変換 (NAT: Network Address Translation) トラバーサルを有効または無効にします。Enables or disables Network Address Translation (NAT) traversal on a UdpClient instance.

BeginReceive(AsyncCallback, Object)

データグラムをリモート ホストから非同期的に受信します。Receives a datagram from a remote host asynchronously.

BeginSend(Byte[], Int32, AsyncCallback, Object)

データグラムをリモート ホストに非同期的に送信します。Sends a datagram to a remote host asynchronously. 送信先は、Connect の呼び出しであらかじめ指定されています。The destination was specified previously by a call to Connect.

BeginSend(Byte[], Int32, IPEndPoint, AsyncCallback, Object)

データグラムを送信先に非同期的に送信します。Sends a datagram to a destination asynchronously. 送信先は、EndPoint で指定されます。The destination is specified by a EndPoint.

BeginSend(Byte[], Int32, String, Int32, AsyncCallback, Object)

データグラムを送信先に非同期的に送信します。Sends a datagram to a destination asynchronously. 送信先は、ホスト名とポート番号で指定されます。The destination is specified by the host name and port number.

Close()

UDP 接続を終了します。Closes the UDP connection.

Connect(IPAddress, Int32)

指定した IP アドレスとポート番号を使用して、既定のリモート ホストを確立します。Establishes a default remote host using the specified IP address and port number.

Connect(IPEndPoint)

指定されたネットワーク エンドポイントを使用して、既定のリモート ホストを確立します。Establishes a default remote host using the specified network endpoint.

Connect(String, Int32)

指定したホスト名とポート番号を使用して、既定のリモート ホストを確立します。Establishes a default remote host using the specified host name and port number.

Dispose()

UdpClient によって使用されているマネージド リソースおよびアンマネージド リソースを解放します。Releases the managed and unmanaged resources used by the UdpClient.

Dispose(Boolean)

UdpClient によって使用されているアンマネージド リソースを解放し、オプションでマネージド リソースも解放します。Releases the unmanaged resources used by the UdpClient and optionally releases the managed resources.

DropMulticastGroup(IPAddress)

マルチキャスト グループへの参加を取り消します。Leaves a multicast group.

DropMulticastGroup(IPAddress, Int32)

マルチキャスト グループへの参加を取り消します。Leaves a multicast group.

EndReceive(IAsyncResult, IPEndPoint)

保留中の非同期受信を終了します。Ends a pending asynchronous receive.

EndSend(IAsyncResult)

保留中の非同期送信を終了します。Ends a pending asynchronous send.

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(継承元 Object)
Finalize()
GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)
JoinMulticastGroup(Int32, IPAddress)

UdpClient をマルチキャスト グループに追加します。Adds a UdpClient to a multicast group.

JoinMulticastGroup(IPAddress)

UdpClient をマルチキャスト グループに追加します。Adds a UdpClient to a multicast group.

JoinMulticastGroup(IPAddress, Int32)

指定された有効期間 (TTL: Time to Live) で UdpClient をマルチキャスト グループに追加します。Adds a UdpClient to a multicast group with the specified Time to Live (TTL).

JoinMulticastGroup(IPAddress, IPAddress)

UdpClient をマルチキャスト グループに追加します。Adds a UdpClient to a multicast group.

MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
Receive(IPEndPoint)

リモート ホストが送信した UDP データグラムを返します。Returns a UDP datagram that was sent by a remote host.

ReceiveAsync()

リモート ホストが送信した UDP データグラムを非同期的に返します。Returns a UDP datagram asynchronously that was sent by a remote host.

Send(Byte[], Int32)

UDP データグラムをリモート ホストに送信します。Sends a UDP datagram to a remote host.

Send(Byte[], Int32, IPEndPoint)

指定したリモート エンドポイントにあるホストに UDP データグラムを送信します。Sends a UDP datagram to the host at the specified remote endpoint.

Send(Byte[], Int32, String, Int32)

指定したリモート ホストの指定したポートに UDP データグラムを送信します。Sends a UDP datagram to a specified port on a specified remote host.

SendAsync(Byte[], Int32)

UDP データグラムをリモート ホストに非同期的に送信します。Sends a UDP datagram asynchronously to a remote host.

SendAsync(Byte[], Int32, IPEndPoint)

UDP データグラムをリモート ホストに非同期的に送信します。Sends a UDP datagram asynchronously to a remote host.

SendAsync(Byte[], Int32, String, Int32)

UDP データグラムをリモート ホストに非同期的に送信します。Sends a UDP datagram asynchronously to a remote host.

ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(継承元 Object)

明示的なインターフェイスの実装

IDisposable.Dispose()

この API は製品インフラストラクチャをサポートします。コードから直接使用するものではありません。

UdpClient によって使用されているすべてのリソースを解放します。Releases all resources used by the UdpClient.

適用対象

こちらもご覧ください