UdpClient Class

 

Provides User Datagram Protocol (UDP) network services.

Namespace:   System.Net.Sockets
Assembly:  System (in System.dll)

System::Object
  System.Net.Sockets::UdpClient

public ref class UdpClient : IDisposable

NameDescription
System_CAPS_pubmethodUdpClient()

Initializes a new instance of the UdpClient class.

System_CAPS_pubmethodUdpClient(AddressFamily)

Initializes a new instance of the UdpClient class.

System_CAPS_pubmethodUdpClient(Int32)

Initializes a new instance of the UdpClient class and binds it to the local port number provided.

System_CAPS_pubmethodUdpClient(Int32, AddressFamily)

Initializes a new instance of the UdpClient class and binds it to the local port number provided.

System_CAPS_pubmethodUdpClient(IPEndPoint^)

Initializes a new instance of the UdpClient class and binds it to the specified local endpoint.

System_CAPS_pubmethodUdpClient(String^, Int32)

Initializes a new instance of the UdpClient class and establishes a default remote host.

NameDescription
System_CAPS_protpropertyActive

Gets or sets a value indicating whether a default remote host has been established.

System_CAPS_pubpropertyAvailable

Gets the amount of data received from the network that is available to read.

System_CAPS_pubpropertyClient

Gets or sets the underlying network Socket.

System_CAPS_pubpropertyDontFragment

Gets or sets a Boolean value that specifies whether the UdpClient allows Internet Protocol (IP) datagrams to be fragmented.

System_CAPS_pubpropertyEnableBroadcast

Gets or sets a Boolean value that specifies whether the UdpClient may send or receive broadcast packets.

System_CAPS_pubpropertyExclusiveAddressUse

Gets or sets a Boolean value that specifies whether the UdpClient allows only one client to use a port.

System_CAPS_pubpropertyMulticastLoopback

Gets or sets a Boolean value that specifies whether outgoing multicast packets are delivered to the sending application.

System_CAPS_pubpropertyTtl

Gets or sets a value that specifies the Time to Live (TTL) value of Internet Protocol (IP) packets sent by the UdpClient.

NameDescription
System_CAPS_pubmethodAllowNatTraversal(Boolean)

Enables or disables Network Address Translation (NAT) traversal on a UdpClient instance.

System_CAPS_pubmethodBeginReceive(AsyncCallback^, Object^)

Receives a datagram from a remote host asynchronously.

System_CAPS_pubmethodBeginSend(array<Byte>^, Int32, AsyncCallback^, Object^)

Sends a datagram to a remote host asynchronously. The destination was specified previously by a call to Connect.

System_CAPS_pubmethodBeginSend(array<Byte>^, Int32, IPEndPoint^, AsyncCallback^, Object^)

Sends a datagram to a destination asynchronously. The destination is specified by a EndPoint.

System_CAPS_pubmethodBeginSend(array<Byte>^, Int32, String^, Int32, AsyncCallback^, Object^)

Sends a datagram to a destination asynchronously. The destination is specified by the host name and port number.

System_CAPS_pubmethodClose()

Closes the UDP connection.

System_CAPS_pubmethodConnect(IPAddress^, Int32)

Establishes a default remote host using the specified IP address and port number.

System_CAPS_pubmethodConnect(IPEndPoint^)

Establishes a default remote host using the specified network endpoint.

System_CAPS_pubmethodConnect(String^, Int32)

Establishes a default remote host using the specified host name and port number.

System_CAPS_pubmethodDispose()

Releases the managed and unmanaged resources used by the UdpClient.

System_CAPS_protmethodDispose(Boolean)

Releases the unmanaged resources used by the UdpClient and optionally releases the managed resources.

System_CAPS_pubmethodDropMulticastGroup(IPAddress^)

Leaves a multicast group.

System_CAPS_pubmethodDropMulticastGroup(IPAddress^, Int32)

Leaves a multicast group.

System_CAPS_pubmethodEndReceive(IAsyncResult^, IPEndPoint^%)

Ends a pending asynchronous receive.

System_CAPS_pubmethodEndSend(IAsyncResult^)

Ends a pending asynchronous send.

System_CAPS_pubmethodEquals(Object^)

Determines whether the specified object is equal to the current object.(Inherited from Object.)

System_CAPS_protmethodFinalize()

Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.)

System_CAPS_pubmethodGetHashCode()

Serves as the default hash function. (Inherited from Object.)

System_CAPS_pubmethodGetType()

Gets the Type of the current instance.(Inherited from Object.)

System_CAPS_pubmethodJoinMulticastGroup(Int32, IPAddress^)

Adds a UdpClient to a multicast group.

System_CAPS_pubmethodJoinMulticastGroup(IPAddress^)

Adds a UdpClient to a multicast group.

System_CAPS_pubmethodJoinMulticastGroup(IPAddress^, Int32)

Adds a UdpClient to a multicast group with the specified Time to Live (TTL).

System_CAPS_pubmethodJoinMulticastGroup(IPAddress^, IPAddress^)

Adds a UdpClient to a multicast group.

System_CAPS_protmethodMemberwiseClone()

Creates a shallow copy of the current Object.(Inherited from Object.)

System_CAPS_pubmethodReceive(IPEndPoint^%)

Returns a UDP datagram that was sent by a remote host.

System_CAPS_pubmethodReceiveAsync()

Returns a UDP datagram asynchronously that was sent by a remote host.

System_CAPS_pubmethodSend(array<Byte>^, Int32)

Sends a UDP datagram to a remote host.

System_CAPS_pubmethodSend(array<Byte>^, Int32, IPEndPoint^)

Sends a UDP datagram to the host at the specified remote endpoint.

System_CAPS_pubmethodSend(array<Byte>^, Int32, String^, Int32)

Sends a UDP datagram to a specified port on a specified remote host.

System_CAPS_pubmethodSendAsync(array<Byte>^, Int32)

Sends a UDP datagram asynchronously to a remote host.

System_CAPS_pubmethodSendAsync(array<Byte>^, Int32, IPEndPoint^)

Sends a UDP datagram asynchronously to a remote host.

System_CAPS_pubmethodSendAsync(array<Byte>^, Int32, String^, Int32)

Sends a UDP datagram asynchronously to a remote host.

System_CAPS_pubmethodToString()

Returns a string that represents the current object.(Inherited from Object.)

The UdpClient class provides simple methods for sending and receiving connectionless UDP datagrams in blocking synchronous mode. Because UDP is a connectionless transport protocol, you do not need to establish a remote host connection prior to sending and receiving data. You do, however, have the option of establishing a default remote host in one of the following two ways:

  • Create an instance of the UdpClient class using the remote host name and port number as parameters.

  • Create an instance of the UdpClient class and then call the Connect method.

You can use any of the send methods provided in the UdpClient to send data to a remote device. Use the Receive method to receive data from remote hosts.

System_CAPS_noteNote

Do not call Send using a host name or IPEndPoint if you have already specified a default remote host. If you do, UdpClient will throw an exception.

UdpClient methods also allow you to send and receive multicast datagrams. Use the JoinMulticastGroup method to subscribe a UdpClient to a multicast group. Use the DropMulticastGroup method to unsubscribe a UdpClient from a multicast group.

The following example establishes a UdpClient connection using the host name www.contoso.com on port 11000. A small string message is sent to two separate remote host machines. The Receive method blocks execution until a message is received. 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() );
}

SocketPermission

To establish an outgoing connection or accept an incoming request.

.NET Framework
Available since 1.1

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top
Show: