libsocket
|
TCP server socket (passive TCP socket) More...
#include <inetserverstream.hpp>
Public Member Functions | |
inet_stream_server (void) | |
Void constructor; don't forget to setup() the socket before use! More... | |
inet_stream_server (const char *bindhost, const char *bindport, int proto_osi3, int flags=0) | |
Set up a server socket. More... | |
inet_stream_server (const string &bindhost, const string &bindport, int proto_osi3, int flags=0) | |
Set up a server socket. More... | |
void | setup (const char *bindhost, const char *bindport, int proto_osi3, int flags=0) |
Set up a server socket. More... | |
void | setup (const string &bindhost, const string &bindport, int proto_osi3, int flags=0) |
Set up a server socket. More... | |
inet_stream * | accept (int numeric=0, int accept_flags=0) |
Accept a connection and return a socket connected to the client. More... | |
unique_ptr< inet_stream > | accept2 (int numeric=0, int accept_flags=0) |
Accept a connection and return a socket connected to the client. More... | |
const string & | getbindhost (void) |
const string & | getbindport (void) |
const string & | gethost (void) const |
const string & | getport (void) const |
virtual int | destroy (void) |
Destroys a socket. More... | |
int | getfd (void) const |
Returns the socket file descriptor. More... | |
int | set_sock_opt (int level, int optname, const char *optval, socklen_t optlen) const |
Set socket options on the underlying socket. More... | |
void | set_close_on_destructor (bool cod) |
Protected Attributes | |
string | host |
The address we're bound or connected to. More... | |
string | port |
The port we're bound or connected to. More... | |
int | proto |
Which internet protocol version we're using. More... | |
int | sfd |
sfd is the sockets API file descriptor More... | |
bool | is_nonblocking |
bool | close_on_destructor |
TCP server socket (passive TCP socket)
This class acts as TCP server. Once set up you may call accept()
on it. When a client wants to connect, a pointer to an inet_stream
class is returned. It may be used to communicate with the client.
Definition at line 56 of file inetserverstream.hpp.
libsocket::inet_stream_server::inet_stream_server | ( | void | ) |
Void constructor; don't forget to setup() the socket before use!
Definition at line 60 of file inetserverstream.cpp.
libsocket::inet_stream_server::inet_stream_server | ( | const char * | bindhost, |
const char * | bindport, | ||
int | proto_osi3, | ||
int | flags = 0 |
||
) |
Set up a server socket.
This constructor initializes a server socket for TCP/IP communication.
bindhost | The address the server should listen on |
bindport | The port the server should listen on |
proto_osi3 | The protocol: LIBSOCKET_IPv4/LIBSOCKET_IPv6 |
flags | Flags for socket(2) |
Definition at line 72 of file inetserverstream.cpp.
libsocket::inet_stream_server::inet_stream_server | ( | const string & | bindhost, |
const string & | bindport, | ||
int | proto_osi3, | ||
int | flags = 0 |
||
) |
Set up a server socket.
This constructor initializes a server socket for TCP/IP communication.
bindhost | The address the server should listen on |
bindport | The port the server should listen on |
proto_osi3 | The protocol: LIBSOCKET_IPv4/LIBSOCKET_IPv6 |
flags | Flags for socket(2) |
Definition at line 88 of file inetserverstream.cpp.
void libsocket::inet_stream_server::setup | ( | const char * | bindhost, |
const char * | bindport, | ||
int | proto_osi3, | ||
int | flags = 0 |
||
) |
Set up a server socket.
If the zero-argument constructor was used, this method initializes a server socket for TCP/IP communication.
bindhost | The address the server should listen on |
bindport | The port the server should listen on |
proto_osi3 | The protocol: LIBSOCKET_IPv4/LIBSOCKET_IPv6 |
flags | Flags for socket(2) |
Definition at line 105 of file inetserverstream.cpp.
void libsocket::inet_stream_server::setup | ( | const string & | bindhost, |
const string & | bindport, | ||
int | proto_osi3, | ||
int | flags = 0 |
||
) |
Set up a server socket.
If the zero-argument constructor was used, this method initializes a server socket for TCP/IP communication.
bindhost | The address the server should listen on |
bindport | The port the server should listen on |
proto_osi3 | The protocol: LIBSOCKET_IPv4/LIBSOCKET_IPv6 |
flags | Flags for socket(2) |
Definition at line 140 of file inetserverstream.cpp.
inet_stream * libsocket::inet_stream_server::accept | ( | int | numeric = 0 , |
int | accept_flags = 0 |
||
) |
Accept a connection and return a socket connected to the client.
Waits for a client to connect and returns a pointer to a inet_stream object which can be used to communicate with the client.
numeric | Specifies if the client's parameter (IP address, port) should be delivered numerically in the src_host/src_port parameters. |
accept_flags | Flags specified in accept(2) |
Definition at line 177 of file inetserverstream.cpp.
unique_ptr< inet_stream > libsocket::inet_stream_server::accept2 | ( | int | numeric = 0 , |
int | accept_flags = 0 |
||
) |
Accept a connection and return a socket connected to the client.
The caller owns the client socket.
numeric | Specifies if the client's parameter (IP address, port) should be delivered numerically in the src_host/src_port parameters. |
accept_flags | Flags specified in accept(2) |
Definition at line 192 of file inetserverstream.cpp.
|
inherited |
For sockets behaving as client: Returns the remote host. For sockets behaving as server: Returns the address bound to.
Definition at line 59 of file inetbase.cpp.
|
inherited |
For sockets behaving as client: Returns the remote port. For sockets behaving as server: Returns the port bound to.
Definition at line 65 of file inetbase.cpp.
|
virtualinherited |
Destroys a socket.
0 | Fine! |
<0 | Most likely the socket was already closed before. |
Definition at line 72 of file socket.cpp.
|
inherited |
Returns the socket file descriptor.
getfd() is a getter you may use to obtain the file descriptor for raw operations on it. It's relatively uncritical as libsocket just wraps other syscalls and doesn't manipulate it using unusual ways.
Definition at line 91 of file socket.cpp.
|
inherited |
Set socket options on the underlying socket.
Sets socket options using setsockopt(2). See setsockopt(2), tcp(7), udp(7), unix(7) for documentation on how to use this function.
Definition at line 101 of file socket.cpp.
|
inlineinherited |
close_on_destructor
is true by default. If set to false, do not call close(2)
on the underlying socket in the destructor.
Definition at line 95 of file socket.hpp.
|
protectedinherited |
The address we're bound or connected to.
Definition at line 55 of file inetbase.hpp.
|
protectedinherited |
The port we're bound or connected to.
Definition at line 57 of file inetbase.hpp.
|
protectedinherited |
Which internet protocol version we're using.
Definition at line 59 of file inetbase.hpp.
|
protectedinherited |
sfd is the sockets API file descriptor
Definition at line 74 of file socket.hpp.
|
protectedinherited |
Default is true; if set to false, the file descriptor is not closed when the destructor is called.
Definition at line 78 of file socket.hpp.