#include <socket.h>
A socket represents a bidirectional communications channel to a { port} at a remote { host}.
Definition at line 212 of file socket.h.
Comparison functions | |
enum | Comparison { LessThan = -1, EqualTo = 0, GreaterThan = 1 } |
virtual Comparison | CompareObjectMemoryDirect (const PObject &obj) const |
bool | operator!= (const PObject &obj) const |
bool | operator< (const PObject &obj) const |
bool | operator<= (const PObject &obj) const |
bool | operator== (const PObject &obj) const |
bool | operator> (const PObject &obj) const |
bool | operator>= (const PObject &obj) const |
Error functions | |
enum | ErrorGroup { LastReadError, LastWriteError, LastGeneralError, NumErrorGroups } |
enum | Errors { NoError, NotFound, FileExists, DiskFull, AccessDenied, DeviceInUse, BadParameter, NoMemory, NotOpen, Timeout, Interrupted, BufferTooSmall, Miscellaneous, ProtocolFailure, NumNormalisedErrors } |
Errors | GetErrorCode (ErrorGroup group=NumErrorGroups) const |
int | GetErrorNumber (ErrorGroup group=NumErrorGroups) const |
virtual PString | GetErrorText (ErrorGroup group=NumErrorGroups) const |
static PString | GetErrorText (Errors lastError, int osError=0) |
Socket establishment functions | |
enum | Reusability { CanReuseAddress, AddressIsExclusive } |
Flags to reuse of port numbers in Listen() function. | |
virtual BOOL | Accept (PSocket &socket) |
virtual BOOL | Connect (const PString &address) |
virtual BOOL | Listen (unsigned queueSize=5, WORD port=0, Reusability reuse=AddressIsExclusive) |
virtual BOOL | Shutdown (ShutdownValue option) |
Miscellaneous functions | |
enum | ShutdownValue { ShutdownRead = 0, ShutdownWrite = 1, ShutdownReadAndWrite = 2 } |
void | AbortCommandString () |
virtual BOOL | Close () |
BOOL | SendCommandString (const PString &command) |
BOOL | SetBufferSize (PINDEX newSize) |
Scattered read/write functions | |
typedef std::vector< Slice > | VectorOfSlice |
virtual BOOL | Read (const VectorOfSlice &slices) |
virtual BOOL | Write (const VectorOfSlice &slices) |
Run Time Type functions | |
virtual const char * | GetClass (unsigned=0) const |
virtual BOOL | InternalIsDescendant (const char *clsName) const |
BOOL | IsClass (const char *cls) const |
static const char * | Class () |
Port/Service database functions | |
WORD | GetPort () const |
virtual WORD | GetPortByService (const PString &service) const |
PString | GetService () const |
virtual PString | GetServiceByPort (WORD port) const |
void | SetPort (const PString &service) |
void | SetPort (WORD port) |
static PString | GetNameByProtocol (WORD proto) |
static WORD | GetPortByService (const char *protocol, const PString &service) |
static WORD | GetProtocolByName (const PString &name) |
static PString | GetServiceByPort (const char *protocol, WORD port) |
I/O functions | |
virtual void | PrintOn (ostream &strm) const |
virtual void | ReadFrom (istream &strm) |
ostream & | operator<< (ostream &strm, const PObject &obj) |
istream & | operator>> (istream &strm, PObject &obj) |
Public Types | |
enum | PXBlockType { PXReadBlock, PXWriteBlock, PXAcceptBlock, PXConnectBlock } |
Public Member Functions | |
BOOL | Read (void *ptr, PINDEX len) |
Miscellaneous functions | |
virtual PObject * | Clone () const |
Overrides from class PObject | |
virtual Comparison | Compare (const PObject &obj) const |
virtual PINDEX | HashFunction () const |
Information functions | |
virtual PChannel * | GetBaseReadChannel () const |
virtual PChannel * | GetBaseWriteChannel () const |
int | GetHandle () const |
virtual PString | GetName () const |
virtual BOOL | IsOpen () const |
Reading functions | |
virtual PINDEX | GetLastReadCount () const |
PTimeInterval | GetReadTimeout () const |
virtual void | OnReadComplete (void *buf, PINDEX len) |
virtual BOOL | ReadAsync (void *buf, PINDEX len) |
BOOL | ReadBlock (void *buf, PINDEX len) |
virtual int | ReadChar () |
PString | ReadString (PINDEX len) |
void | SetReadTimeout (const PTimeInterval &time) |
Writing functions | |
virtual PINDEX | GetLastWriteCount () const |
PTimeInterval | GetWriteTimeout () const |
virtual void | OnWriteComplete (const void *buf, PINDEX len) |
void | SetWriteTimeout (const PTimeInterval &time) |
virtual BOOL | Write (const void *buf, PINDEX len) |
virtual BOOL | WriteAsync (const void *buf, PINDEX len) |
BOOL | WriteChar (int c) |
BOOL | WriteString (const PString &str) |
Socket options functions | |
BOOL | GetOption (int option, void *valuePtr, PINDEX valueSize, int level=SOL_SOCKET) |
BOOL | GetOption (int option, int &value, int level=SOL_SOCKET) |
BOOL | SetOption (int option, const void *valuePtr, PINDEX valueSize, int level=SOL_SOCKET) |
BOOL | SetOption (int option, int value, int level=SOL_SOCKET) |
Static Public Member Functions | |
static BOOL | ConvertOSError (int libcReturnValue, Errors &lastError, int &osError) |
Integer conversion functions | |
static DWORD | Host2Net (DWORD v) |
Convert from host to network byte order. | |
static WORD | Host2Net (WORD v) |
Convert from host to network byte order. | |
static DWORD | Net2Host (DWORD v) |
Convert from network to host byte order. | |
static WORD | Net2Host (WORD v) |
Convert from network to host byte order. | |
Multiple socket selection functions | |
static Errors | Select (SelectList &read, SelectList &write, SelectList &except, const PTimeInterval &timeout) |
static Errors | Select (SelectList &read, SelectList &write, SelectList &except) |
static Errors | Select (SelectList &read, SelectList &write, const PTimeInterval &timeout) |
static Errors | Select (SelectList &read, SelectList &write) |
static Errors | Select (SelectList &read, const PTimeInterval &timeout) |
static Errors | Select (SelectList &read) |
static int | Select (PSocket &sock1, PSocket &sock2, const PTimeInterval &timeout) |
static int | Select (PSocket &sock1, PSocket &sock2) |
Protected Member Functions | |
virtual BOOL | ConvertOSError (int libcReturnValue, ErrorGroup group=LastGeneralError) |
virtual const char * | GetProtocolName () const =0 |
virtual BOOL | OpenSocket ()=0 |
BOOL | os_accept (PSocket &listener, struct sockaddr *addr, PINDEX *size) |
int | os_close () |
BOOL | os_connect (struct sockaddr *sin, PINDEX size) |
BOOL | os_recvfrom (void *buf, PINDEX len, int flags, struct sockaddr *from, PINDEX *fromlen) |
BOOL | os_sendto (const void *buf, PINDEX len, int flags, struct sockaddr *to, PINDEX tolen) |
int | os_socket (int af, int type, int proto) |
int | PXClose () |
BOOL | PXSetIOBlock (PXBlockType type, const PTimeInterval &timeout) |
int | ReadCharWithTimeout (PTimeInterval &timeout) |
BOOL | ReceiveCommandString (int nextChar, const PString &reply, PINDEX &pos, PINDEX start) |
BOOL | SetErrorValues (Errors errorCode, int osError, ErrorGroup group=LastGeneralError) |
Protected Attributes | |
PString | channelName |
Errors | lastErrorCode [NumErrorGroups+1] |
The platform independant error code. | |
int | lastErrorNumber [NumErrorGroups+1] |
The operating system error number (eg as returned by errno). | |
PINDEX | lastReadCount |
Number of byte last read by the Read() function. | |
PINDEX | lastWriteCount |
Number of byte last written by the Write() function. | |
int | os_handle |
The operating system file handle return by standard open() function. | |
WORD | port |
Port to be used by the socket when opening the channel. | |
PXBlockType | px_lastBlockType |
PThread * | px_readThread |
PMutex | px_selectMutex |
PThread * | px_selectThread |
PMutex | px_threadMutex |
PMutex | px_writeMutex |
PThread * | px_writeThread |
PTimeInterval | readTimeout |
Timeout for read operations. | |
PTimeInterval | writeTimeout |
Timeout for write operations. | |
Private Member Functions | |
PCLASSINFO (PSocket, PChannel) | |
Classes | |
class | SelectList |
List of sockets used for Select()# function. More... |