System::Net::Sockets::TcpClient Class Reference

Inherits System::IDisposable.

Public Member Functions

ASPOSECPP_SHARED_API System::SharedPtr< Socketget_Client ()
 
ASPOSECPP_SHARED_API void set_Client (System::SharedPtr< Socket > value)
 
ASPOSECPP_SHARED_API int32_t get_Available ()
 
ASPOSECPP_SHARED_API bool get_Connected ()
 
ASPOSECPP_SHARED_API bool get_ExclusiveAddressUse ()
 
ASPOSECPP_SHARED_API void set_ExclusiveAddressUse (bool value)
 
ASPOSECPP_SHARED_API int32_t get_ReceiveBufferSize ()
 
ASPOSECPP_SHARED_API void set_ReceiveBufferSize (int32_t value)
 
ASPOSECPP_SHARED_API int32_t get_SendBufferSize ()
 
ASPOSECPP_SHARED_API void set_SendBufferSize (int32_t value)
 
ASPOSECPP_SHARED_API int32_t get_ReceiveTimeout ()
 
ASPOSECPP_SHARED_API void set_ReceiveTimeout (int32_t value)
 
ASPOSECPP_SHARED_API int32_t get_SendTimeout ()
 
ASPOSECPP_SHARED_API void set_SendTimeout (int32_t value)
 
ASPOSECPP_SHARED_API System::SharedPtr< LingerOptionget_LingerState ()
 
ASPOSECPP_SHARED_API void set_LingerState (System::SharedPtr< LingerOption > value)
 
ASPOSECPP_SHARED_API bool get_NoDelay ()
 
ASPOSECPP_SHARED_API void set_NoDelay (bool value)
 
ASPOSECPP_SHARED_API TcpClient (System::SharedPtr< IPEndPoint > localEP)
 
ASPOSECPP_SHARED_API TcpClient ()
 Constructs a new instance. More...
 
ASPOSECPP_SHARED_API TcpClient (AddressFamily family)
 
ASPOSECPP_SHARED_API TcpClient (String hostname, int32_t port)
 
ASPOSECPP_SHARED_API void Connect (String hostname, int32_t port)
 
ASPOSECPP_SHARED_API void Connect (System::SharedPtr< IPAddress > address, int32_t port)
 
ASPOSECPP_SHARED_API void Connect (System::SharedPtr< IPEndPoint > remoteEP)
 
ASPOSECPP_SHARED_API void Connect (System::ArrayPtr< System::SharedPtr< IPAddress >> ipAddresses, int32_t port)
 
ASPOSECPP_SHARED_API System::SharedPtr< IAsyncResultBeginConnect (String host, int32_t port, AsyncCallback requestCallback, System::SharedPtr< Object > state)
 
ASPOSECPP_SHARED_API System::SharedPtr< IAsyncResultBeginConnect (System::SharedPtr< IPAddress > address, int32_t port, AsyncCallback requestCallback, System::SharedPtr< Object > state)
 
ASPOSECPP_SHARED_API System::SharedPtr< IAsyncResultBeginConnect (System::ArrayPtr< System::SharedPtr< IPAddress >> addresses, int32_t port, AsyncCallback requestCallback, System::SharedPtr< Object > state)
 
ASPOSECPP_SHARED_API void EndConnect (System::SharedPtr< IAsyncResult > asyncResult)
 
ASPOSECPP_SHARED_API System::SharedPtr< NetworkStreamGetStream ()
 
ASPOSECPP_SHARED_API void Close ()
 Closes the connection and disposes the current instance. More...
 
virtual ASPOSECPP_SHARED_API ~TcpClient ()
 Destructs the current instance. More...
 
- Public Member Functions inherited from System::IDisposable
virtual void Dispose ()
 Does nothing. 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)
 
template<>
bool Equals (double const &objA, double const &objB)
 
template<>
bool ReferenceEquals (String const &str, std::nullptr_t)
 
template<>
bool ReferenceEquals (String const &str1, String const &str2)
 

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

Represents a client 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

◆ TcpClient() [1/4]

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

Constructs a new instance.

Parameters
localEPThe endpoint to which the socket is bound.

◆ TcpClient() [2/4]

ASPOSECPP_SHARED_API System::Net::Sockets::TcpClient::TcpClient ( )

Constructs a new instance.

◆ TcpClient() [3/4]

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

Constructs a new instance.

Parameters
familyAn address family.

◆ TcpClient() [4/4]

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

Constructs a new instance.

Parameters
hostnameA remote host name to connect.
portA port of the remote host to connect.

◆ ~TcpClient()

virtual ASPOSECPP_SHARED_API System::Net::Sockets::TcpClient::~TcpClient ( )
virtual

Destructs the current instance.

Member Function Documentation

◆ BeginConnect() [1/3]

ASPOSECPP_SHARED_API System::SharedPtr<IAsyncResult> System::Net::Sockets::TcpClient::BeginConnect ( String  host,
int32_t  port,
AsyncCallback  requestCallback,
System::SharedPtr< Object state 
)

Initiates an asynchronous connect operation.

Parameters
hostA remote host name.
portA port of the remote host.
requestCallbackA 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 connect operation.

◆ BeginConnect() [2/3]

ASPOSECPP_SHARED_API System::SharedPtr<IAsyncResult> System::Net::Sockets::TcpClient::BeginConnect ( System::SharedPtr< IPAddress address,
int32_t  port,
AsyncCallback  requestCallback,
System::SharedPtr< Object state 
)

Initiates an asynchronous connect operation.

Parameters
addressThe IP address of a remote host.
portA port of the remote host.
requestCallbackA 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 connect operation.

◆ BeginConnect() [3/3]

ASPOSECPP_SHARED_API System::SharedPtr<IAsyncResult> System::Net::Sockets::TcpClient::BeginConnect ( System::ArrayPtr< System::SharedPtr< IPAddress >>  addresses,
int32_t  port,
AsyncCallback  requestCallback,
System::SharedPtr< Object state 
)

Initiates an asynchronous connect operation.

Parameters
addressesThe IP addresses of a remote host.
portA port of the remote host.
requestCallbackA 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 connect operation.

◆ Close()

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

Closes the connection and disposes the current instance.

◆ Connect() [1/4]

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

Establishes a connection to the specified remote host.

Parameters
hostnameA remote host name to connect.
portA port of the remote host to connect.

◆ Connect() [2/4]

ASPOSECPP_SHARED_API void System::Net::Sockets::TcpClient::Connect ( System::SharedPtr< IPAddress address,
int32_t  port 
)

Establishes a connection to the specified remote host.

Parameters
addressThe IP address of a remote host.
portA port of the remote host to connect.

◆ Connect() [3/4]

ASPOSECPP_SHARED_API void System::Net::Sockets::TcpClient::Connect ( System::SharedPtr< IPEndPoint remoteEP)

Establishes a connection to the specified remote host.

Parameters
remoteEPA remote host to connect.

◆ Connect() [4/4]

ASPOSECPP_SHARED_API void System::Net::Sockets::TcpClient::Connect ( System::ArrayPtr< System::SharedPtr< IPAddress >>  ipAddresses,
int32_t  port 
)

Establishes a connection to the specified remote host.

Parameters
ipAddressesThe IP addresses of a remote host.
portA port of the remote host to connect.

◆ EndConnect()

ASPOSECPP_SHARED_API void System::Net::Sockets::TcpClient::EndConnect ( System::SharedPtr< IAsyncResult asyncResult)

Waits until the specified asynchronous connect operation completes.

Parameters
asyncResultAn IAsyncResult object that represents an asynchronous connect operation.

◆ get_Available()

ASPOSECPP_SHARED_API int32_t System::Net::Sockets::TcpClient::get_Available ( )

Returns the number of bytes that are received and ready to read.

Returns
The number of bytes that are received and ready to read.

◆ get_Client()

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

Gets the socket.

Returns
The socket.

◆ get_Connected()

ASPOSECPP_SHARED_API bool System::Net::Sockets::TcpClient::get_Connected ( )

Returns a value that indicates if the socket is connected to the remote host.

Returns
A value that indicates if the socket is connected to the remote host.

◆ get_ExclusiveAddressUse()

ASPOSECPP_SHARED_API bool System::Net::Sockets::TcpClient::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_LingerState()

ASPOSECPP_SHARED_API System::SharedPtr<LingerOption> System::Net::Sockets::TcpClient::get_LingerState ( )

Gets a value that indicates if the socket will delay closing in an attempt to send all pending data.

Returns
A value that indicates if the socket will delay closing in an attempt to send all pending data.

◆ get_NoDelay()

ASPOSECPP_SHARED_API bool System::Net::Sockets::TcpClient::get_NoDelay ( )

Gets a value that indicates if the current instance is using the Nagle algorithm.

Returns
A value that indicates if the current instance is using the Nagle algorithm.

◆ get_ReceiveBufferSize()

ASPOSECPP_SHARED_API int32_t System::Net::Sockets::TcpClient::get_ReceiveBufferSize ( )

Gets the size of the buffer that is used for receiving data.

Returns
The size of the buffer that is used for receiving data.

◆ get_ReceiveTimeout()

ASPOSECPP_SHARED_API int32_t System::Net::Sockets::TcpClient::get_ReceiveTimeout ( )

Gets a value that indicates an amount of time after which data receiving will time out.

Returns
A value that indicates an amount of time after which data receiving will time out.

◆ get_SendBufferSize()

ASPOSECPP_SHARED_API int32_t System::Net::Sockets::TcpClient::get_SendBufferSize ( )

Gets the size of the buffer that is used for sending data.

Returns
The size of the buffer that is used for sending data.

◆ get_SendTimeout()

ASPOSECPP_SHARED_API int32_t System::Net::Sockets::TcpClient::get_SendTimeout ( )

Gets a value that indicates an amount of time after which data sending will time out.

Returns
A value that indicates an amount of time after which data sending will time out.

◆ GetStream()

ASPOSECPP_SHARED_API System::SharedPtr<NetworkStream> System::Net::Sockets::TcpClient::GetStream ( )

Returns the stream that is used for sending and receiving data.

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

◆ set_Client()

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

Sets the socket.

Parameters
valueThe value that must be set.

◆ set_ExclusiveAddressUse()

ASPOSECPP_SHARED_API void System::Net::Sockets::TcpClient::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.

◆ set_LingerState()

ASPOSECPP_SHARED_API void System::Net::Sockets::TcpClient::set_LingerState ( System::SharedPtr< LingerOption value)

Sets a value that indicates if the socket will delay closing in an attempt to send all pending data.

Parameters
valueThe value that must be set.

◆ set_NoDelay()

ASPOSECPP_SHARED_API void System::Net::Sockets::TcpClient::set_NoDelay ( bool  value)

Sets a value that indicates if the current instance is using the Nagle algorithm.

Parameters
valueThe value that must be set.

◆ set_ReceiveBufferSize()

ASPOSECPP_SHARED_API void System::Net::Sockets::TcpClient::set_ReceiveBufferSize ( int32_t  value)

Sets the size of the buffer that is used for receiving data.

Parameters
valueThe value that must be set.

◆ set_ReceiveTimeout()

ASPOSECPP_SHARED_API void System::Net::Sockets::TcpClient::set_ReceiveTimeout ( int32_t  value)

Sets a value that indicates an amount of time after which data receiving will time out.

Parameters
valueThe value that must be set.

◆ set_SendBufferSize()

ASPOSECPP_SHARED_API void System::Net::Sockets::TcpClient::set_SendBufferSize ( int32_t  value)

Sets the size of the buffer that is used for sending data.

Parameters
valueThe value that must be set.

◆ set_SendTimeout()

ASPOSECPP_SHARED_API void System::Net::Sockets::TcpClient::set_SendTimeout ( int32_t  value)

Sets a value that indicates an amount of time after which data sending will time out.

Parameters
valueThe value that must be set.