System::Net::Sockets::UdpClient Class Reference

Provides User Datagram Protocol (UDP) network services. Objects of this class should only be allocated using System::MakeObject() function. Never create instance of this type on stack or using operator new, as it will result in runtime errors and/or assertion faults. Always wrap this class into System::SmartPtr pointer and use this pointer to pass it to functions as argument. More...

#include "udp_client.h"

Inherits System::IDisposable.

Public Member Functions

ASPOSECPP_SHARED_API System::SharedPtr< Socketget_Client ()
 Used to provide the underlying network socket. More...
 
ASPOSECPP_SHARED_API void set_Client (System::SharedPtr< Socket > value)
 Used to provide the underlying network socket. More...
 
ASPOSECPP_SHARED_API UdpClient ()
 Initializes a new instance of the UdpClient class. More...
 
ASPOSECPP_SHARED_API UdpClient (AddressFamily family)
 Initializes a new instance of the UdpClient class. More...
 
ASPOSECPP_SHARED_API UdpClient (int32_t port)
 Initializes a new instance of the UdpClient class. More...
 
ASPOSECPP_SHARED_API UdpClient (int32_t port, AddressFamily family)
 Initializes a new instance of the UdpClient class. More...
 
ASPOSECPP_SHARED_API UdpClient (System::SharedPtr< IPEndPoint > localEP)
 Initializes a new instance of the UdpClient class. param local EP the local endpoint to which you bind the UDP connection. More...
 
ASPOSECPP_SHARED_API UdpClient (String hostname, int32_t port)
 Creates a new instance of the UdpClient class and connects to the specified remote host on the specified port. More...
 
ASPOSECPP_SHARED_API void Close ()
 Closes the UDP connection. More...
 
ASPOSECPP_SHARED_API void Dispose () override
 Releases the managed and unmanaged resources used by the UdpClient. More...
 
ASPOSECPP_SHARED_API void Connect (String hostname, int32_t port)
 Establishes a connection to the specified port on the specified host. More...
 
ASPOSECPP_SHARED_API void Connect (System::SharedPtr< IPAddress > addr, int32_t port)
 Establishes a connection with the host at the specified address on the specified port. More...
 
ASPOSECPP_SHARED_API void Connect (System::SharedPtr< IPEndPoint > endPoint)
 Establishes a connection to a remote end point. More...
 
ASPOSECPP_SHARED_API int32_t Send (System::ArrayPtr< uint8_t > dgram, int32_t bytes, System::SharedPtr< IPEndPoint > endPoint)
 Sends a UDP datagram to the host at the remote end point. More...
 
ASPOSECPP_SHARED_API int32_t Send (System::ArrayPtr< uint8_t > dgram, int32_t bytes, String hostname, int32_t port)
 Sends a UDP datagram to the specified port on the specified remote host. More...
 
ASPOSECPP_SHARED_API int32_t Send (System::ArrayPtr< uint8_t > dgram, int32_t bytes)
 Sends a UDP datagram to a remote host. More...
 
ASPOSECPP_SHARED_API System::ArrayPtr< uint8_t > Receive (System::SharedPtr< IPEndPoint > &remoteEP)
 Returns a datagram sent by a server. More...
 
- Public Member Functions inherited from System::Object
ASPOSECPP_SHARED_API Object ()
 Creates object. Initializes all internal data structures. More...
 
virtual ASPOSECPP_SHARED_API ~Object ()
 Destroys object. Frees all internal data structures. More...
 
ASPOSECPP_SHARED_API Object (Object const &x)
 Copy constructor. Doesn't copy anything, really, just initializes new object and enables copy constructing subclasses. More...
 
Objectoperator= (Object const &x)
 Assignment operator. Doesn't copy anything, really, just initializes new object and enables copy constructing subclasses. More...
 
ObjectSharedRefAdded ()
 Increments shared reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
int SharedRefRemovedSafe ()
 Decrements and returns shared reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
int RemovedSharedRefs (int count)
 Decreases shared reference count by specified value. More...
 
Detail::SmartPtrCounter * WeakRefAdded ()
 Increments weak reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
void WeakRefRemoved ()
 Decrements weak reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
Detail::SmartPtrCounter * GetCounter ()
 Gets reference counter data structure associated with the object. More...
 
int SharedCount () const
 Gets current value of shared reference counter. More...
 
ASPOSECPP_SHARED_API void Lock ()
 Implements C# lock() statement locking. Call directly or use LockContext sentry object. More...
 
ASPOSECPP_SHARED_API void Unlock ()
 Implements C# lock() statement unlocking. Call directly or use LockContext sentry object. More...
 
virtual ASPOSECPP_SHARED_API bool Equals (ptr obj)
 Compares objects using C# Object.Equals semantics. More...
 
virtual ASPOSECPP_SHARED_API int32_t GetHashCode () const
 Analog of C# Object.GetHashCode() method. Enables hashing of custom objects. More...
 
virtual ASPOSECPP_SHARED_API String ToString () const
 Analog of C# Object.ToString() method. Enables converting custom objects to string. More...
 
virtual ASPOSECPP_SHARED_API ptr MemberwiseClone () const
 Analog of C# Object.MemberwiseClone() method. Enables cloning custom types. More...
 
virtual ASPOSECPP_SHARED_API const TypeInfoGetType () const
 Gets actual type of object. Analog of C# System.Object.GetType() call. More...
 
virtual ASPOSECPP_SHARED_API bool Is (const TypeInfo &targetType) const
 Check if object represents an instance of type described by targetType. Analog of C# 'is' operator. More...
 
virtual ASPOSECPP_SHARED_API void SetTemplateWeakPtr (uint32_t argument)
 Set n'th template argument a weak pointer (rather than shared). Allows switching pointers in containers to weak mode. More...
 
virtual ASPOSECPP_SHARED_API bool FastCast (const Details::FastRttiBase &helper, void **out_ptr) const
 For internal purposes only. More...
 
template<>
bool Equals (float const &objA, float const &objB)
 Emulates C#-style floating point comparison where two NaNs are considered equal even though according to IEC 60559:1989 NaN is not equal to any value, including NaN. More...
 
template<>
bool Equals (double const &objA, double const &objB)
 Emulates C#-style floating point comparison where two NaNs are considered equal even though according to IEC 60559:1989 NaN is not equal to any value, including NaN. More...
 
template<>
bool ReferenceEquals (String const &str, std::nullptr_t)
 Specialization of Object::ReferenceEquals for case of string and nullptr. More...
 
template<>
bool ReferenceEquals (String const &str1, String const &str2)
 Specialization of Object::ReferenceEquals for case of strings. More...
 

Protected Member Functions

ASPOSECPP_SHARED_API bool get_Active ()
 Gets a value that indicates if the current instance is actively listening for the client connections. More...
 
ASPOSECPP_SHARED_API void set_Active (bool value)
 Sets a value that indicates if the current instance is actively listening for the client connections. More...
 
virtual ASPOSECPP_SHARED_API void Dispose (bool disposing)
 Disposes the current instance. This method also disposes the underlying socket. More...
 
ASPOSECPP_SHARED_API ~UdpClient () override
 Destructs the current instance. More...
 

Additional Inherited Members

- Public Types inherited from System::Object
typedef SmartPtr< Objectptr
 Alias for smart pointer type. More...
 
- Static Public Member Functions inherited from System::Object
static bool ReferenceEquals (ptr const &objA, ptr const &objB)
 Compares objects by reference. More...
 
template<typename T >
static std::enable_if<!IsSmartPtr< T >::value, bool >::type ReferenceEquals (T const &objA, T const &objB)
 Compares objects by reference. More...
 
template<typename T >
static std::enable_if<!IsSmartPtr< T >::value, bool >::type ReferenceEquals (T const &objA, std::nullptr_t)
 Reference-compares value type object with nullptr. More...
 
template<typename T1 , typename T2 >
static std::enable_if< IsSmartPtr< T1 >::value &&IsSmartPtr< T2 >::value, bool >::type Equals (T1 const &objA, T2 const &objB)
 Compares reference type objects in C# style. More...
 
template<typename T1 , typename T2 >
static std::enable_if<!IsSmartPtr< T1 >::value &&!IsSmartPtr< T2 >::value, bool >::type Equals (T1 const &objA, T2 const &objB)
 Compares value type objects in C# style. More...
 
static const TypeInfoType ()
 Implements C# typeof(System.Object) construct. More...
 

Detailed Description

Provides User Datagram Protocol (UDP) network services. Objects of this class should only be allocated using System::MakeObject() function. Never create instance of this type on stack or using operator new, as it will result in runtime errors and/or assertion faults. Always wrap this class into System::SmartPtr pointer and use this pointer to pass it to functions as argument.

Constructor & Destructor Documentation

◆ UdpClient() [1/6]

ASPOSECPP_SHARED_API System::Net::Sockets::UdpClient::UdpClient ( )

Initializes a new instance of the UdpClient class.

◆ UdpClient() [2/6]

ASPOSECPP_SHARED_API System::Net::Sockets::UdpClient::UdpClient ( AddressFamily  family)

Initializes a new instance of the UdpClient class.

Parameters
familyvalue that specifies the addressing scheme of the socket.

◆ UdpClient() [3/6]

ASPOSECPP_SHARED_API System::Net::Sockets::UdpClient::UdpClient ( int32_t  port)

Initializes a new instance of the UdpClient class.

Parameters
portthe local port number from which you intend to communicate.

◆ UdpClient() [4/6]

ASPOSECPP_SHARED_API System::Net::Sockets::UdpClient::UdpClient ( int32_t  port,
AddressFamily  family 
)

Initializes a new instance of the UdpClient class.

Parameters
portthe local port number from which you intend to communicate.
familyvalue that specifies the addressing scheme of the socket.

◆ UdpClient() [5/6]

ASPOSECPP_SHARED_API System::Net::Sockets::UdpClient::UdpClient ( System::SharedPtr< IPEndPoint localEP)

Initializes a new instance of the UdpClient class. param local EP the local endpoint to which you bind the UDP connection.

◆ UdpClient() [6/6]

ASPOSECPP_SHARED_API System::Net::Sockets::UdpClient::UdpClient ( String  hostname,
int32_t  port 
)

Creates a new instance of the UdpClient class and connects to the specified remote host on the specified port.

Parameters
hostnameThe name of the remote DNS host to which you intend to connect.
portThe local port number from which you intend to communicate.

◆ ~UdpClient()

ASPOSECPP_SHARED_API System::Net::Sockets::UdpClient::~UdpClient ( )
overrideprotected

Destructs the current instance.

Member Function Documentation

◆ Close()

ASPOSECPP_SHARED_API void System::Net::Sockets::UdpClient::Close ( )

Closes the UDP connection.

◆ Connect() [1/3]

ASPOSECPP_SHARED_API void System::Net::Sockets::UdpClient::Connect ( String  hostname,
int32_t  port 
)

Establishes a connection to the specified port on the specified host.

Parameters
hostnameThe name of the remote DNS host to which you intend to connect.
portThe local port number from which you intend to communicate.

◆ Connect() [2/3]

ASPOSECPP_SHARED_API void System::Net::Sockets::UdpClient::Connect ( System::SharedPtr< IPAddress addr,
int32_t  port 
)

Establishes a connection with the host at the specified address on the specified port.

Parameters
addrThe IPAddress of the remote host to which to send data.
portThe local port number from which you intend to communicate.

◆ Connect() [3/3]

ASPOSECPP_SHARED_API void System::Net::Sockets::UdpClient::Connect ( System::SharedPtr< IPEndPoint endPoint)

Establishes a connection to a remote end point.

Parameters
endPointthe endpoint to which you bind the UDP connection.

◆ Dispose() [1/2]

ASPOSECPP_SHARED_API void System::Net::Sockets::UdpClient::Dispose ( )
overridevirtual

Releases the managed and unmanaged resources used by the UdpClient.

Reimplemented from System::IDisposable.

◆ Dispose() [2/2]

virtual ASPOSECPP_SHARED_API void System::Net::Sockets::UdpClient::Dispose ( bool  disposing)
protectedvirtual

Disposes the current instance. This method also disposes the underlying socket.

Parameters
disposingTrue when the method is called directly or indirectly by a user's code, otherwise false.

◆ get_Active()

ASPOSECPP_SHARED_API bool System::Net::Sockets::UdpClient::get_Active ( )
protected

Gets a value that indicates if the current instance is actively listening for the client connections.

Returns
A value that indicates if the current instance is actively listening for the client connections.

◆ get_Client()

ASPOSECPP_SHARED_API System::SharedPtr<Socket> System::Net::Sockets::UdpClient::get_Client ( )

Used to provide the underlying network socket.

Returns
The underlying network socket.

◆ Receive()

ASPOSECPP_SHARED_API System::ArrayPtr<uint8_t> System::Net::Sockets::UdpClient::Receive ( System::SharedPtr< IPEndPoint > &  remoteEP)

Returns a datagram sent by a server.

Parameters
remoteEPAn IPEndPoint that represents the remote host from which the data was sent.
Returns
A byte array where received data will be assigned.

◆ Send() [1/3]

ASPOSECPP_SHARED_API int32_t System::Net::Sockets::UdpClient::Send ( System::ArrayPtr< uint8_t >  dgram,
int32_t  bytes,
System::SharedPtr< IPEndPoint endPoint 
)

Sends a UDP datagram to the host at the remote end point.

Parameters
dgramAn array of type Byte to send
bytesThe number of bytes in the datagram.
endPointAn IPEndPoint that represents the host and port to which to send the datagram.
Returns
The number of bytes that are sent.

◆ Send() [2/3]

ASPOSECPP_SHARED_API int32_t System::Net::Sockets::UdpClient::Send ( System::ArrayPtr< uint8_t >  dgram,
int32_t  bytes,
String  hostname,
int32_t  port 
)

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

Parameters
dgramAn array of type Byte to send
bytesThe number of bytes in the datagram.
hostnameA name of the remote host.
portA remote port number.
Returns
The number of bytes that are sent.

◆ Send() [3/3]

ASPOSECPP_SHARED_API int32_t System::Net::Sockets::UdpClient::Send ( System::ArrayPtr< uint8_t >  dgram,
int32_t  bytes 
)

Sends a UDP datagram to a remote host.

Parameters
dgramAn array of type Byte to send.
bytesThe number of bytes in the datagram.
Returns
The number of bytes that are sent.

◆ set_Active()

ASPOSECPP_SHARED_API void System::Net::Sockets::UdpClient::set_Active ( bool  value)
protected

Sets a value that indicates if the current instance is actively listening for the client connections.

Parameters
valueThe value that must be set.

◆ set_Client()

ASPOSECPP_SHARED_API void System::Net::Sockets::UdpClient::set_Client ( System::SharedPtr< Socket value)

Used to provide the underlying network socket.

Parameters
valueThe value that must be set.