Represents a listener for the TCP 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...

Inherits System::Object.

Public Member Functions

ASPOSECPP_SHARED_API System::SharedPtr< Socketget_Server ()
 Returns the underlying network socket. More...
 
ASPOSECPP_SHARED_API System::SharedPtr< EndPointget_LocalEndpoint ()
 Returns the underlying endpoint. More...
 
ASPOSECPP_SHARED_API bool get_ExclusiveAddressUse ()
 Gets a value that indicates if the current instance allows only one client to use a port. More...
 
ASPOSECPP_SHARED_API void set_ExclusiveAddressUse (bool value)
 Sets a value that indicates if the current instance allows only one client to use a port. More...
 
ASPOSECPP_SHARED_API TcpListener (System::SharedPtr< IPEndPoint > localEP)
 Constructs a new instance. More...
 
ASPOSECPP_SHARED_API TcpListener (System::SharedPtr< IPAddress > localaddr, int32_t port)
 Constructs a new instance. More...
 
ASPOSECPP_SHARED_API TcpListener (int32_t port)
 Constructs a new instance. More...
 
ASPOSECPP_SHARED_API void AllowNatTraversal (bool allowed)
 Enables or disables the NAT traversal. More...
 
ASPOSECPP_SHARED_API void Start ()
 Starts listening for the incoming connections. More...
 
ASPOSECPP_SHARED_API void Start (int32_t backlog)
 Starts listening for the incoming connections. More...
 
ASPOSECPP_SHARED_API void Stop ()
 Stops listening for the incoming connections. More...
 
ASPOSECPP_SHARED_API bool Pending ()
 Returns a value that indicates if there are pending connection requests. More...
 
ASPOSECPP_SHARED_API System::SharedPtr< SocketAcceptSocket ()
 Accepts the pending connection request and returns the socket that is used to send and receive data. More...
 
ASPOSECPP_SHARED_API System::SharedPtr< TcpClientAcceptTcpClient ()
 Accepts the pending connection request and returns the TcpClient-class instance that is used for sending and receiving data. More...
 
ASPOSECPP_SHARED_API System::SharedPtr< IAsyncResultBeginAcceptSocket (AsyncCallback callback, System::SharedPtr< Object > state)
 Initiates an asynchronous accept operation. More...
 
ASPOSECPP_SHARED_API System::SharedPtr< SocketEndAcceptSocket (System::SharedPtr< IAsyncResult > asyncResult)
 Waits until the specified asynchronous accept operation completes. More...
 
ASPOSECPP_SHARED_API System::SharedPtr< IAsyncResultBeginAcceptTcpClient (AsyncCallback callback, System::SharedPtr< Object > state)
 Initiates an asynchronous accept operation. More...
 
ASPOSECPP_SHARED_API System::SharedPtr< TcpClientEndAcceptTcpClient (System::SharedPtr< IAsyncResult > asyncResult)
 Waits until the specified asynchronous accept operation completes. 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...
 

Static Public Member Functions

static ASPOSECPP_SHARED_API System::SharedPtr< TcpListenerCreate (int32_t port)
 Creates a new instance using the specified port number. 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...
 

Protected Member Functions

ASPOSECPP_SHARED_API bool get_Active ()
 Returns a value that indicates if the current instance is actively listening for the client connections. More...
 

Additional Inherited Members

- Public Types inherited from System::Object
typedef SmartPtr< Objectptr
 Alias for smart pointer type. More...
 

Detailed Description

Represents a listener for the TCP 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

◆ TcpListener() [1/3]

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

Constructs a new instance.

Parameters
localEPThe local endpoint to which the listener socket must be bound.

◆ TcpListener() [2/3]

ASPOSECPP_SHARED_API System::Net::Sockets::TcpListener::TcpListener ( System::SharedPtr< IPAddress localaddr,
int32_t  port 
)

Constructs a new instance.

Parameters
localaddrThe local IP address.
portA port number to listen.

◆ TcpListener() [3/3]

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

Constructs a new instance.

Parameters
portA port number to listen.

Member Function Documentation

◆ AcceptSocket()

ASPOSECPP_SHARED_API System::SharedPtr<Socket> System::Net::Sockets::TcpListener::AcceptSocket ( )

Accepts the pending connection request and returns the socket that is used to send and receive data.

Returns
The socket that is used for sending and receiving data.

◆ AcceptTcpClient()

ASPOSECPP_SHARED_API System::SharedPtr<TcpClient> System::Net::Sockets::TcpListener::AcceptTcpClient ( )

Accepts the pending connection request and returns the TcpClient-class instance that is used for sending and receiving data.

Returns
The TcpClient-class instance that is used for sending and receiving data.

◆ AllowNatTraversal()

ASPOSECPP_SHARED_API void System::Net::Sockets::TcpListener::AllowNatTraversal ( bool  allowed)

Enables or disables the NAT traversal.

Parameters
allowedA value that indicates if the NAT traversal must be enabled or disabled.

◆ BeginAcceptSocket()

ASPOSECPP_SHARED_API System::SharedPtr<IAsyncResult> System::Net::Sockets::TcpListener::BeginAcceptSocket ( AsyncCallback  callback,
System::SharedPtr< Object state 
)

Initiates an asynchronous accept operation.

Parameters
callbackA callback that will be called when the operation completes.
stateUser-provided data used to uniquely identify each asynchronous connect operation.
Returns
An IAsyncResult object representing the initiated asynchronous accept operation.

◆ BeginAcceptTcpClient()

ASPOSECPP_SHARED_API System::SharedPtr<IAsyncResult> System::Net::Sockets::TcpListener::BeginAcceptTcpClient ( AsyncCallback  callback,
System::SharedPtr< Object state 
)

Initiates an asynchronous accept operation.

Parameters
callbackA callback that will be called when the operation completes.
stateUser-provided data used to uniquely identify each asynchronous connect operation.
Returns
An IAsyncResult object representing the initiated asynchronous accept operation.

◆ Create()

static ASPOSECPP_SHARED_API System::SharedPtr<TcpListener> System::Net::Sockets::TcpListener::Create ( int32_t  port)
static

Creates a new instance using the specified port number.

Parameters
portA port number that is used to create the TcpListener-class instance.
Returns
A newly created TcpListener-class instance.

◆ EndAcceptSocket()

ASPOSECPP_SHARED_API System::SharedPtr<Socket> System::Net::Sockets::TcpListener::EndAcceptSocket ( System::SharedPtr< IAsyncResult asyncResult)

Waits until the specified asynchronous accept operation completes.

Parameters
asyncResultAn IAsyncResult object that represents an asynchronous accept operation.

◆ EndAcceptTcpClient()

ASPOSECPP_SHARED_API System::SharedPtr<TcpClient> System::Net::Sockets::TcpListener::EndAcceptTcpClient ( System::SharedPtr< IAsyncResult asyncResult)

Waits until the specified asynchronous accept operation completes.

Parameters
asyncResultAn IAsyncResult object that represents an asynchronous accept operation.

◆ get_Active()

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

Returns 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_ExclusiveAddressUse()

ASPOSECPP_SHARED_API bool System::Net::Sockets::TcpListener::get_ExclusiveAddressUse ( )

Gets a value that indicates if the current instance allows only one client to use a port.

Returns
A value that indicates if the current instance allows only one client to use a port.

◆ get_LocalEndpoint()

ASPOSECPP_SHARED_API System::SharedPtr<EndPoint> System::Net::Sockets::TcpListener::get_LocalEndpoint ( )

Returns the underlying endpoint.

Returns
The underlying endpoint.

◆ get_Server()

ASPOSECPP_SHARED_API System::SharedPtr<Socket> System::Net::Sockets::TcpListener::get_Server ( )

Returns the underlying network socket.

Returns
The underlying network socket.

◆ Pending()

ASPOSECPP_SHARED_API bool System::Net::Sockets::TcpListener::Pending ( )

Returns a value that indicates if there are pending connection requests.

Returns
True when the pending connection requests are present, otherwise false.

◆ set_ExclusiveAddressUse()

ASPOSECPP_SHARED_API void System::Net::Sockets::TcpListener::set_ExclusiveAddressUse ( bool  value)

Sets a value that indicates if the current instance allows only one client to use a port.

Parameters
valueThe value that must be set.

◆ Start() [1/2]

ASPOSECPP_SHARED_API void System::Net::Sockets::TcpListener::Start ( )

Starts listening for the incoming connections.

◆ Start() [2/2]

ASPOSECPP_SHARED_API void System::Net::Sockets::TcpListener::Start ( int32_t  backlog)

Starts listening for the incoming connections.

Parameters
backlogThe size of the pending connections queue.

◆ Stop()

ASPOSECPP_SHARED_API void System::Net::Sockets::TcpListener::Stop ( )

Stops listening for the incoming connections.