Export (0) Print
Expand All
1 out of 2 rated this helpful - Rate this topic

UdpClient Class

Provides User Datagram Protocol (UDP) network services.

System.Object
  System.Net.Sockets.UdpClient

Namespace:  System.Net.Sockets
Assembly:  System (in System.dll)
public class UdpClient : IDisposable

The UdpClient type exposes the following members.

  NameDescription
Public methodUdpClient()Initializes a new instance of the UdpClient class.
Public methodUdpClient(AddressFamily)Initializes a new instance of the UdpClient class.
Public methodUdpClient(Int32)Initializes a new instance of the UdpClient class and binds it to the local port number provided.
Public methodUdpClient(IPEndPoint)Initializes a new instance of the UdpClient class and binds it to the specified local endpoint.
Public methodUdpClient(Int32, AddressFamily)Initializes a new instance of the UdpClient class and binds it to the local port number provided.
Public methodUdpClient(String, Int32)Initializes a new instance of the UdpClient class and establishes a default remote host.
Top
  NameDescription
Protected propertyActiveGets or sets a value indicating whether a default remote host has been established.
Public propertyAvailableGets the amount of data received from the network that is available to read.
Public propertyClientGets or sets the underlying network Socket.
Public propertyDontFragmentGets or sets a Boolean value that specifies whether the UdpClient allows Internet Protocol (IP) datagrams to be fragmented.
Public propertyEnableBroadcastGets or sets a Boolean value that specifies whether the UdpClient may send or receive broadcast packets.
Public propertyExclusiveAddressUseGets or sets a Boolean value that specifies whether the UdpClient allows only one client to use a port.
Public propertyMulticastLoopbackGets or sets a Boolean value that specifies whether outgoing multicast packets are delivered to the sending application.
Public propertyTtlGets or sets a value that specifies the Time to Live (TTL) value of Internet Protocol (IP) packets sent by the UdpClient.
Top
  NameDescription
Public methodAllowNatTraversalEnables or disables Network Address Translation (NAT) traversal on a UdpClient instance.
Public methodBeginReceiveReceives a datagram from a remote host asynchronously.
Public methodBeginSend(Byte[], Int32, AsyncCallback, Object)Sends a datagram to a remote host asynchronously. The destination was specified previously by a call to Connect.
Public methodBeginSend(Byte[], Int32, IPEndPoint, AsyncCallback, Object)Sends a datagram to a destination asynchronously. The destination is specified by a EndPoint.
Public methodBeginSend(Byte[], Int32, String, Int32, AsyncCallback, Object)Sends a datagram to a destination asynchronously. The destination is specified by the host name and port number.
Public methodCloseCloses the UDP connection.
Public methodConnect(IPEndPoint)Establishes a default remote host using the specified network endpoint.
Public methodConnect(IPAddress, Int32)Establishes a default remote host using the specified IP address and port number.
Public methodConnect(String, Int32)Establishes a default remote host using the specified host name and port number.
Protected methodDisposeReleases the unmanaged resources used by the UdpClient and optionally releases the managed resources.
Public methodDropMulticastGroup(IPAddress)Leaves a multicast group.
Public methodDropMulticastGroup(IPAddress, Int32)Leaves a multicast group.
Public methodEndReceiveEnds a pending asynchronous receive.
Public methodEndSendEnds a pending asynchronous send.
Public methodEquals(Object)Determines whether the specified object is equal to the current object. (Inherited from Object.)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodGetHashCodeServes as the default hash function. (Inherited from Object.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Public methodJoinMulticastGroup(IPAddress)Adds a UdpClient to a multicast group.
Public methodJoinMulticastGroup(Int32, IPAddress)Adds a UdpClient to a multicast group.
Public methodJoinMulticastGroup(IPAddress, Int32)Adds a UdpClient to a multicast group with the specified Time to Live (TTL).
Public methodJoinMulticastGroup(IPAddress, IPAddress)Adds a UdpClient to a multicast group.
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodReceiveReturns a UDP datagram that was sent by a remote host.
Public methodReceiveAsyncReturns a UDP datagram asynchronously that was sent by a remote host.
Public methodSend(Byte[], Int32)Sends a UDP datagram to a remote host.
Public methodSend(Byte[], Int32, IPEndPoint)Sends a UDP datagram to the host at the specified remote endpoint.
Public methodSend(Byte[], Int32, String, Int32)Sends a UDP datagram to a specified port on a specified remote host.
Public methodSendAsync(Byte[], Int32)Sends a UDP datagram asynchronously to a remote host.
Public methodSendAsync(Byte[], Int32, IPEndPoint)Sends a UDP datagram asynchronously to a remote host.
Public methodSendAsync(Byte[], Int32, String, Int32)Sends a UDP datagram asynchronously to a remote host.
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)
Top
  NameDescription
Explicit interface implemetationPrivate methodIDisposable.DisposeInfrastructure. Releases all resources used by the UdpClient.
Top

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.

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.

// 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());
        }

.NET Framework

Supported in: 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
  • SocketPermission 

    To establish an outgoing connection or accept an incoming request.

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Show:
© 2014 Microsoft. All rights reserved.