simple-socket library 1.5.0
Loading...
Searching...
No Matches
TCPSocket.cpp
1#include "TCPSocket.h"
2#include "TempFailure.h"
3
4#include <sys/socket.h>
5#include <netinet/in.h>
6#include <netinet/tcp.h>
7
8using namespace NET;
9
10TCPSocket::TCPSocket( AddressFamily family)
11: InternetSocket( family, SOCK_STREAM, IPPROTO_TCP)
12{}
13
15: InternetSocket( handle.release() )
16{}
17
18void TCPSocket::setNoDelay( bool enable)
19{
20 const int value = enable;
21 if( ::setsockopt( m_socket, IPPROTO_TCP, TCP_NODELAY, &value, sizeof(value)) < 0)
22 throw SocketException("Failed to set TCP_NODELAY (setsockopt)");
23}
24
26{
27 int ret = SimpleSocket::accept();
28 return Handle(ret);
29}
30
32{
33 int ret = SimpleSocket::timedAccept(timeout);
34 return Handle(ret);
35}
InternetSocket(int sockfd)
create socket from a SocketHandle returned by an accept() call
int accept() const
allows stream sockets to accept connections into Handles
int timedAccept(int timeout) const
allows stream sockets timed accept
Signals a problem with the execution of a socket call.
TCPSocket(AddressFamily family=IPv4)
Definition TCPSocket.cpp:10
SocketHandle< TCPSocket > Handle
Handle for a new socket returned by accept().
Definition TCPSocket.h:14
void setNoDelay(bool enable)
Enable or disable TCP_NODELAY.
Definition TCPSocket.cpp:18
Handle timedAccept(int timeout) const
wait for another socket to connect
Definition TCPSocket.cpp:31
Handle accept() const
wait for another socket to connect
Definition TCPSocket.cpp:25