|
#include <TCPSocket.h>
Public Member Functions | |
| TCPSocket (SOCKET_ADDRESS_FAMILY domain=AF_INET, int32_t type=SOCK_STREAM, int32_t protocol=0) | |
| ~TCPSocket () override | |
| void | setProxy (std::shared_ptr< Proxy > proxy) |
| void | close () noexcept override |
| virtual bool | accept (SOCKET &clientSocketFD, struct sockaddr_in &clientInfo, std::chrono::milliseconds timeout) |
| size_t | socketBytes () override |
| bool | readyToRead (std::chrono::milliseconds timeout) override |
| size_t | readLine (char *buffer, size_t size, char delimiter='\n') |
| size_t | readLine (Buffer &buffer, char delimiter='\n') |
| size_t | readLine (String &s, char delimiter='\n') |
| size_t | read (uint8_t *buffer, size_t size, sockaddr_in *from=nullptr) override |
| size_t | read (Buffer &buffer, size_t size, sockaddr_in *from=nullptr) override |
| size_t | read (String &buffer, size_t size, sockaddr_in *from=nullptr) override |
| template<typename T > | |
| size_t | read (T &value, sockaddr_in *from=nullptr) |
Public Member Functions inherited from sptk::BaseSocket | |
| SOCKET | fd () const |
| void | open_addr (OpenMode openMode=OpenMode::CREATE, const sockaddr_in *addr=nullptr, std::chrono::milliseconds timeout=std::chrono::milliseconds(0)) |
| BaseSocket (SOCKET_ADDRESS_FAMILY domain=AF_INET, int32_t type=SOCK_STREAM, int32_t protocol=0) | |
| BaseSocket (const BaseSocket &other)=delete | |
| BaseSocket (BaseSocket &&other) noexcept=default | |
| virtual | ~BaseSocket () |
| Destructor. | |
| BaseSocket & | operator= (const BaseSocket &other)=delete |
| BaseSocket & | operator= (BaseSocket &&other) noexcept=default |
| void | blockingMode (bool blocking) |
| virtual size_t | socketBytes () |
| virtual void | attach (SOCKET socketHandle, bool accept) |
| virtual SOCKET | detach () |
| void | host (const Host &host) |
| const Host & | host () const |
| void | open (const Host &host=Host(), OpenMode openMode=OpenMode::CONNECT, bool blockingMode=true, std::chrono::milliseconds timeoutMS=std::chrono::milliseconds(0)) |
| void | open (const struct sockaddr_in &address, OpenMode openMode=OpenMode::CONNECT, bool blockingMode=true, std::chrono::milliseconds timeoutMS=std::chrono::milliseconds(0)) |
| void | bind (const char *address, uint32_t portNumber) |
| void | listen (uint16_t portNumber=0) |
| virtual void | close () noexcept |
| bool | active () const |
| int32_t | control (int flag, const uint32_t *check) const |
| void | setOption (int level, int option, int value) const |
| void | getOption (int level, int option, int &value) const |
| virtual size_t | recv (uint8_t *buffer, size_t len) |
| virtual size_t | send (const uint8_t *buffer, size_t len) |
| virtual size_t | read (uint8_t *buffer, size_t size, sockaddr_in *from) |
| virtual size_t | read (uint8_t *buffer, size_t size) |
| virtual size_t | read (Buffer &buffer, size_t size, sockaddr_in *from) |
| size_t | read (Buffer &buffer, size_t size) |
| virtual size_t | read (String &buffer, size_t size, sockaddr_in *from) |
| size_t | read (String &buffer, size_t size) |
| virtual size_t | write (const uint8_t *buffer, size_t size, const sockaddr_in *peer) |
| size_t | write (const uint8_t *buffer, size_t size) |
| virtual size_t | write (const Buffer &buffer, const sockaddr_in *peer) |
| size_t | write (const Buffer &buffer) |
| virtual size_t | write (const String &buffer, const sockaddr_in *peer) |
| size_t | write (const String &buffer) |
| virtual bool | readyToRead (std::chrono::milliseconds timeout) |
| virtual bool | readyToWrite (std::chrono::milliseconds timeout) |
| bool | blockingMode () const |
| Return current blocking mode state. More... | |
Protected Member Functions | |
| TCPSocketReader & | reader () |
| void | _open (const Host &host, OpenMode openMode, bool blockingMode, std::chrono::milliseconds timeout) override |
| void | _open (const struct sockaddr_in &address, OpenMode openMode, bool blockingMode, std::chrono::milliseconds timeout) override |
| Proxy * | proxy () |
Protected Member Functions inherited from sptk::BaseSocket | |
| void | setSocketFD (SOCKET socket) |
| int32_t | domain () const |
| int32_t | type () const |
| int32_t | protocol () const |
| virtual void | _open (const Host &host, OpenMode openMode, bool blockingMode, std::chrono::milliseconds timeoutMS) |
| virtual void | _open (const struct sockaddr_in &address, OpenMode openMode, bool blockingMode, std::chrono::milliseconds timeoutMS) |
Additional Inherited Members | |
Public Types inherited from sptk::BaseSocket | |
| enum class | OpenMode : uint8_t { CREATE , CONNECT , BIND } |
Generic TCP socket.
Allows to establish a network connection to the host by name and port address
|
explicit |
Constructor
| domain | Socket domain type |
| type | Socket type |
| protocol | Protocol type |
|
override |
Destructor
|
overrideprotectedvirtual |
Opens the client socket connection by host and port
| host | The host |
| openMode | Socket open mode |
| blockingMode | Socket blocking (true) on non-blocking (false) mode |
| timeout | Connection timeout. The default is 0 (wait forever) |
Reimplemented from sptk::BaseSocket.
|
overrideprotectedvirtual |
Opens the client socket connection by host and port
| address | Address and port |
| openMode | Socket open mode |
| blockingMode | Socket blocking (true) on non-blocking (false) mode |
| timeout | Connection timeout. The default is 0 (wait forever) |
Reimplemented from sptk::BaseSocket.
|
virtual |
In server mode, waits for the incoming connection.
When incoming connection is made, exits returning the connection info
| clientSocketFD | Connected client socket FD |
| clientInfo | Connected client info |
| timeout | Accept operation timeout |
|
overridevirtualnoexcept |
Close socket connection
Reimplemented from sptk::BaseSocket.
Referenced by sptk::TCPServerConnection::terminate(), and sptk::WSProtocol::~WSProtocol().
|
inlineprotected |
Get proxy information
|
overridevirtual |
Reads data from the socket into memory buffer
Buffer bytes() is set to number of bytes read
| buffer | The memory buffer |
| size | Number of bytes to read from socket |
| from | An optional structure for source address |
Reimplemented from sptk::BaseSocket.
|
overridevirtual |
Reads data from the socket into memory buffer
Buffer bytes() is set to number of bytes read
| buffer | The memory buffer |
| size | Number of bytes to read from socket |
| from | An optional structure for source address |
Reimplemented from sptk::BaseSocket.
|
overridevirtual |
Reads data from the socket
| buffer | The memory buffer |
| size | The number of bytes to read |
| from | An optional structure for source address |
Reimplemented from sptk::BaseSocket.
|
inlineprotected |
Access to internal socket reader for derived classes
| size_t sptk::TCPSocket::readLine | ( | Buffer & | buffer, |
| char | delimiter = '\n' |
||
| ) |
Reads one line (terminated with CRLF) from the socket into existing memory buffer
The memory buffer is extended automatically to fit the string.
| buffer | The destination buffer |
| delimiter | Line delimiter |
| size_t sptk::TCPSocket::readLine | ( | char * | buffer, |
| size_t | size, | ||
| char | delimiter = '\n' |
||
| ) |
Reads one line from the socket into existing memory buffer
The output string should fit the buffer or it will be returned incomplete.
| buffer | The destination buffer |
| size | The destination buffer size |
| delimiter | Line delimiter |
| size_t sptk::TCPSocket::readLine | ( | String & | s, |
| char | delimiter = '\n' |
||
| ) |
Reads one line (terminated with CRLF) from the socket into string
| s | The destination string |
| delimiter | Line delimiter |
|
overridevirtual |
Reports true if socket is ready for reading from it
| timeout | Read timeout |
Reimplemented from sptk::BaseSocket.
|
overridevirtual |
Returns number of bytes available in socket
Reimplemented from sptk::BaseSocket.