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

Public Class UdpClient Implements IDisposable
public class UdpClient : IDisposable
public ref class UdpClient : IDisposable
public class UdpClient implements IDisposable
public class UdpClient implements IDisposable

UdpClient クラスは、同期ブロッキング モードのときにコネクションレスの UDP データグラムを送受信するための単純なメソッドを提供します。UDP はコネクションレスのトランスポート プロトコルであるため、データを送受信する前にリモート ホスト接続を確立する必要はありません。ただし、オプションとして次の 2 つのいずれかの方法で既定のリモート ホストを設定できます。
UdpClient が用意している送信メソッドのうちの任意のメソッドを使用して、リモート デバイスにデータを送信できます。Receive メソッドを使用して、リモート ホストからデータを受信します。
![]() |
---|
既定のリモート ホストが既に指定されている場合は、ホスト名または IPEndPoint を使用して Send を呼び出すことはできません。この呼び出しを行った場合は、UdpClient が例外をスローします。 |
また、UdpClient メソッドを使用すると、マルチキャスト データグラムを送受信することもできます。JoinMulticastGroup メソッドを使用して、UdpClient がマルチキャスト グループをサブスクライブするようにします。DropMulticastGroup メソッドは、マルチキャスト グループから UdpClient をアンサブスクライブするときに使用します。

ポート 11000 上のホスト名 www.contoso.com を使用して UdpClient 接続を確立する例を次に示します。2 つの別個のリモート ホスト コンピュータに小さな文字列メッセージが送信されます。Receive メソッドはメッセージを受信するまで実行をブロックします。Receive に渡された IPEndPoint を使用して、応答するホストの ID が明らかになります。
' 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
// 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()); }
// 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(); try { udpClient.Connect("www.contoso.com", 11000); // Sends a message to the host to which you have connected. ubyte sendBytes[] = Encoding.get_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. ubyte receiveBytes[] = udpClient.Receive(remoteIpEndPoint); String returnData = Encoding.get_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.get_Address().ToString() + " on their port number " + System.Convert.ToString(remoteIpEndPoint.get_Port()))); udpClient.Close(); udpClientB.Close(); } catch (System.Exception e) { Console.WriteLine(e.ToString()); }


System.Net.Sockets.UdpClient


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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


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