A derivation of Socket for a stream socket. More...
#include <gsocket.h>
Public Types | |
| typedef Socket::size_type | size_type |
| typedef Socket::ssize_type | ssize_type |
Public Types inherited from GNet::Socket | |
| typedef size_t | size_type |
| typedef ssize_t | ssize_type |
Public Member Functions | |
| StreamSocket () | |
| Default constructor. Check with valid(). More... | |
| StreamSocket (const Address &address_hint) | |
| Constructor with a hint of the bind()/connect() address to be used later. More... | |
| virtual | ~StreamSocket () |
| Destructor. More... | |
| ssize_type | read (char *buffer, size_type buffer_length) |
| Reads data from the socket stream. More... | |
| AcceptPair | accept () |
| Accepts an incoming connection, returning a new()ed socket and the peer address. More... | |
Public Member Functions inherited from GNet::Socket | |
| virtual | ~Socket () |
| Destructor. More... | |
| bool | valid () const |
| Returns true if the socket handle is valid (open). More... | |
| std::pair< bool, Address > | getLocalAddress () const |
| Retrieves local address of the socket. More... | |
| std::pair< bool, Address > | getPeerAddress () const |
| Retrieves address of socket's peer. More... | |
| bool | hasPeer () const |
| Returns true if the socket has a valid peer. More... | |
| bool | bind (const Address &address) |
| Binds the socket with an INADDR_ANY network address and the port number taken from the given address. More... | |
| bool | canBindHint (const Address &address) |
| Returns true if the socket can probably be bound with the given address. More... | |
| bool | connect (const Address &addr, bool *done=NULL) |
| Initiates a connection to (or association with) the given address. More... | |
| bool | listen (int backlog=1) |
| Starts the socket listening on the bound address for incoming connections or incoming datagrams. More... | |
| virtual ssize_type | write (const char *buf, size_type len) |
| Sends data. More... | |
| bool | eWouldBlock () |
| Returns true if the previous socket operation failed with the EWOULDBLOCK or EGAIN error status. More... | |
| bool | eInProgress () |
| Returns true if the previous socket operation failed with the EINPROGRESS error status. More... | |
| bool | eMsgSize () |
| Returns true if the previous socket operation failed with the EMSGSIZE error status. More... | |
| void | addReadHandler (EventHandler &handler) |
| Adds this socket to the event source list so that the given handler receives read events. More... | |
| void | dropReadHandler () |
| Reverses addReadHandler(). More... | |
| void | addWriteHandler (EventHandler &handler) |
| Adds this socket to the event source list so that the given handler receives write events when flow control is released. More... | |
| void | dropWriteHandler () |
| Reverses addWriteHandler(). More... | |
| void | addExceptionHandler (EventHandler &handler) |
| Adds this socket to the event source list so that the given handler receives exception events. More... | |
| void | dropExceptionHandler () |
| Reverses addExceptionHandler(). More... | |
| std::string | asString () const |
| Returns the socket handle as a string. More... | |
| std::string | reasonString () const |
| Returns the failure reason as a string. More... | |
| void | shutdown (bool for_writing=true) |
| Shuts the socket for writing (or reading). More... | |
| int | fd (Credentials) const |
| Returns the socket descriptor as an integer. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from GNet::Socket | |
| Socket (int domain, int type, int protocol) | |
| Constructor used by derived classes. More... | |
| Socket (Descriptor s) | |
| Constructor which creates a socket object from an existing socket handle. More... | |
| void | prepare () |
| void | setFault () |
| void | setNoLinger () |
| void | setReuse () |
| void | setKeepAlive () |
| std::pair< bool, Address > | getAddress (bool) const |
Static Protected Member Functions inherited from GNet::Socket | |
| static bool | valid (Descriptor s) |
| static int | reason () |
| static bool | error (int rc) |
| static bool | sizeError (ssize_type size) |
Protected Attributes inherited from GNet::Socket | |
| int | m_reason |
| Descriptor | m_socket |
| GNet::StreamSocket::StreamSocket | ( | ) |
Default constructor. Check with valid().
Definition at line 313 of file gsocket.cpp.
References GNet::Socket::setKeepAlive(), and GNet::Socket::setNoLinger().
|
explicit |
Constructor with a hint of the bind()/connect() address to be used later.
Check with valid().
Definition at line 320 of file gsocket.cpp.
References GNet::Socket::setKeepAlive(), and GNet::Socket::setNoLinger().
|
virtual |
Destructor.
Definition at line 332 of file gsocket.cpp.
| GNet::AcceptPair GNet::StreamSocket::accept | ( | ) |
Accepts an incoming connection, returning a new()ed socket and the peer address.
Definition at line 354 of file gsocket.cpp.
References GNet::Address::displayString(), GNet::AcceptPair::first, G_DEBUG, GNet::Address::invalidAddress(), and GNet::AcceptPair::second.
| GNet::Socket::ssize_type GNet::StreamSocket::read | ( | char * | buffer, |
| size_type | buffer_length | ||
| ) |
Reads data from the socket stream.
Returns 0 if the connection has been lost. Returns -1 on error, or if there is nothing to read (eWouldBlock() true). Note that having nothing to read is not an error, even after getting a read event.
Definition at line 336 of file gsocket.cpp.
1.8.9.1