#include <SocketTCP.hh>
Public Member Functions | |
SocketTCP () | |
virtual | ~SocketTCP () |
virtual void | close () |
virtual void | createConnection (const char *server_name, unsigned int port) throw (NetworkError) |
void | createTCPClient (in_port_t port, in_addr_t addr) throw (NetworkError) |
void | createTCPServer (in_port_t port=0, in_addr_t addr=INADDR_ANY) throw (NetworkError) |
int | accept (SocketTCP *serveur) throw (NetworkError) |
virtual void | send (const unsigned char *, size_t) throw (NetworkError, NetworkSignal) |
virtual void | receive (void *Buffer, unsigned long Size) throw (NetworkError, NetworkSignal) |
virtual bool | isDataReady () const |
virtual unsigned long | returnAdress () const |
SocketTCP & | operator= (SocketTCP &theSocket) |
virtual int | returnSocket () |
Protected Member Functions | |
int | timeoutTCP (int, int) |
Wait for a socket event, until a time-out. | |
Protected Attributes | |
ByteCount_t | SentBytesCount |
ByteCount_t | RcvdBytesCount |
Private Member Functions | |
int | open () |
int | connect (in_port_t port, in_addr_t addr) |
int | listen (unsigned long howMuch=5) |
int | bind (in_port_t port=0, in_addr_t addr=INADDR_ANY) |
void | setPort (in_port_t port) |
Change the port value. | |
in_port_t | getPort () const |
in_addr_t | getAddr () const |
Private Attributes | |
long | _socket_tcp |
bool | _est_init_tcp |
struct sockaddr_in | _sockIn |
An important drawback of this improvement is that a socket can be marked as empty for the system, but in fact there is data waiting in the read buffer. This is especially a problem for processes using the 'select' system call: the socket won't be marked as ready for reading, because all data has already been read, and is waiting in the internal buffer. Therefore, before returning to a select loop, be sure to call the IsDataReady method to check whether any data is waiting for processing.
Definition at line 48 of file SocketTCP.hh.
SocketTCP | ( | ) |
Definition at line 96 of file SocketTCP.cc.
References SocketTCP::_est_init_tcp, SocketTCP::RcvdBytesCount, and SocketTCP::SentBytesCount.
~SocketTCP | ( | ) | [virtual] |
Definition at line 113 of file SocketTCP.cc.
References SocketTCP::_est_init_tcp, SocketTCP::_socket_tcp, SocketTCP::close(), SocketTCP::RcvdBytesCount, and SocketTCP::SentBytesCount.
void close | ( | ) | [virtual] |
Implements Socket.
Definition at line 402 of file SocketTCP.cc.
References SocketTCP::_est_init_tcp, and SocketTCP::_socket_tcp.
Referenced by SocketServer::close(), Communications::~Communications(), RTIG::~RTIG(), SocketTCP::~SocketTCP(), and SocketTuple::~SocketTuple().
void createConnection | ( | const char * | server_name, | |
unsigned int | port | |||
) | throw (NetworkError) [virtual] |
Implements Socket.
Reimplemented in SocketHTTPProxy.
Definition at line 264 of file SocketTCP.cc.
References SocketTCP::createTCPClient().
Referenced by Communications::Communications(), and SocketHTTPProxy::createConnection().
void createTCPClient | ( | in_port_t | port, | |
in_addr_t | addr | |||
) | throw (NetworkError) |
Definition at line 289 of file SocketTCP.cc.
References SocketTCP::_est_init_tcp, Socket::addr2string(), SocketTCP::connect(), and SocketTCP::open().
Referenced by SocketTCP::createConnection().
void createTCPServer | ( | in_port_t | port = 0 , |
|
in_addr_t | addr = INADDR_ANY | |||
) | throw (NetworkError) |
Definition at line 315 of file SocketTCP.cc.
References SocketTCP::_est_init_tcp, Socket::addr2string(), SocketTCP::bind(), SocketTCP::listen(), certi::MAX_BACKLOG, and SocketTCP::open().
Referenced by RTIG::execute().
int accept | ( | SocketTCP * | serveur | ) | throw (NetworkError) |
Definition at line 181 of file SocketTCP.cc.
References SocketTCP::_est_init_tcp, SocketTCP::_socket_tcp, and SocketTCP::_sockIn.
Referenced by SocketServer::open().
void send | ( | const unsigned char * | buffer, | |
size_t | size | |||
) | throw (NetworkError, NetworkSignal) [virtual] |
Implements Socket.
Reimplemented in SecureTCPSocket.
Definition at line 352 of file SocketTCP.cc.
References SocketTCP::_est_init_tcp, SocketTCP::_socket_tcp, certi::D, PrettyDebug::Out(), pdDebug, pdExcept, pdTrace, and SocketTCP::SentBytesCount.
Referenced by SecureTCPSocket::send(), and SocketHTTPProxy::sendHTTPConnect().
void receive | ( | void * | Buffer, | |
unsigned long | Size | |||
) | throw (NetworkError, NetworkSignal) [virtual] |
Implements Socket.
Reimplemented in SecureTCPSocket.
Definition at line 475 of file SocketTCP.cc.
References SocketTCP::_est_init_tcp, SocketTCP::_socket_tcp, certi::D, PrettyDebug::Out(), pdDebug, pdExcept, pdTrace, and SocketTCP::RcvdBytesCount.
Referenced by SecureTCPSocket::receive().
bool isDataReady | ( | ) | const [virtual] |
Return RTI_TRUE if any data as already been read from the system socket and is waiting in the internal buffer, else RTI_FALSE.
Implements Socket.
Reimplemented in SecureTCPSocket.
Definition at line 443 of file SocketTCP.cc.
Referenced by SecureTCPSocket::isDataReady(), and Communications::readMessage().
unsigned long returnAdress | ( | ) | const [virtual] |
Implements Socket.
Definition at line 540 of file SocketTCP.cc.
References SocketTCP::getAddr().
Definition at line 464 of file SocketTCP.cc.
References SocketTCP::_socket_tcp, SocketTCP::_sockIn, SocketTCP::getAddr(), SocketTCP::getPort(), and SocketTCP::returnSocket().
int returnSocket | ( | ) | [virtual] |
Implements Socket.
Definition at line 549 of file SocketTCP.cc.
References SocketTCP::_socket_tcp.
Referenced by RTIG::execute(), SocketTCP::operator=(), Communications::readMessage(), and SocketHTTPProxy::receiveLine().
int timeoutTCP | ( | int | sec, | |
int | usec | |||
) | [protected] |
Wait for a socket event, until a time-out.
The time-out is given with seconds and microseconds in parameter.
sec | seconds | |
usec | microseconds |
NetworkSignal | and NetworkError |
Definition at line 568 of file SocketTCP.cc.
References SocketTCP::_est_init_tcp, and SocketTCP::_socket_tcp.
Referenced by SocketHTTPProxy::sendHTTPConnect().
int open | ( | ) | [private] |
Definition at line 454 of file SocketTCP.cc.
References SocketTCP::_socket_tcp.
Referenced by SocketTCP::createTCPClient(), and SocketTCP::createTCPServer().
int connect | ( | in_port_t | port, | |
in_addr_t | addr | |||
) | [private] |
Definition at line 137 of file SocketTCP.cc.
References SocketTCP::_est_init_tcp, SocketTCP::_socket_tcp, and SocketTCP::_sockIn.
Referenced by SocketTCP::createTCPClient().
int listen | ( | unsigned long | howMuch = 5 |
) | [private] |
Definition at line 417 of file SocketTCP.cc.
References SocketTCP::_est_init_tcp, and SocketTCP::_socket_tcp.
Referenced by SocketTCP::createTCPServer().
int bind | ( | in_port_t | port = 0 , |
|
in_addr_t | addr = INADDR_ANY | |||
) | [private] |
Definition at line 231 of file SocketTCP.cc.
References SocketTCP::_est_init_tcp, SocketTCP::_socket_tcp, and SocketTCP::_sockIn.
Referenced by SocketTCP::createTCPServer().
void setPort | ( | in_port_t | port | ) | [private] |
in_port_t getPort | ( | ) | const [private] |
Definition at line 433 of file SocketTCP.cc.
References SocketTCP::_sockIn.
Referenced by SocketTCP::operator=().
in_addr_t getAddr | ( | ) | const [private] |
Definition at line 426 of file SocketTCP.cc.
References SocketTCP::_sockIn.
Referenced by SocketTCP::operator=(), and SocketTCP::returnAdress().
ByteCount_t SentBytesCount [protected] |
Definition at line 82 of file SocketTCP.hh.
Referenced by SocketTCP::send(), SocketTCP::SocketTCP(), and SocketTCP::~SocketTCP().
ByteCount_t RcvdBytesCount [protected] |
Definition at line 83 of file SocketTCP.hh.
Referenced by SocketTCP::receive(), SocketHTTPProxy::receiveLine(), SocketTCP::SocketTCP(), and SocketTCP::~SocketTCP().
long _socket_tcp [private] |
Definition at line 98 of file SocketTCP.hh.
Referenced by SocketTCP::accept(), SocketTCP::bind(), SocketTCP::close(), SocketTCP::connect(), SocketTCP::listen(), SocketTCP::open(), SocketTCP::operator=(), SocketTCP::receive(), SocketTCP::returnSocket(), SocketTCP::send(), SocketTCP::timeoutTCP(), and SocketTCP::~SocketTCP().
bool _est_init_tcp [private] |
Definition at line 100 of file SocketTCP.hh.
Referenced by SocketTCP::accept(), SocketTCP::bind(), SocketTCP::close(), SocketTCP::connect(), SocketTCP::createTCPClient(), SocketTCP::createTCPServer(), SocketTCP::listen(), SocketTCP::receive(), SocketTCP::send(), SocketTCP::SocketTCP(), SocketTCP::timeoutTCP(), and SocketTCP::~SocketTCP().
struct sockaddr_in _sockIn [read, private] |
Definition at line 101 of file SocketTCP.hh.
Referenced by SocketTCP::accept(), SocketTCP::bind(), SocketTCP::connect(), SocketTCP::getAddr(), SocketTCP::getPort(), SocketTCP::operator=(), and SocketTCP::setPort().