Also add a function to check if the socket is already listening
void StreamServerSocket::listen(const SockAddr &addr, unsigned backlog)
{
void StreamServerSocket::listen(const SockAddr &addr, unsigned backlog)
{
+ if(listening)
+ throw bad_socket_state("already listening");
+
bind(addr);
int err = ::listen(priv->handle, backlog);
bind(addr);
int err = ::listen(priv->handle, backlog);
StreamServerSocket(Family, int = 0);
virtual void listen(const SockAddr &, unsigned = 4);
StreamServerSocket(Family, int = 0);
virtual void listen(const SockAddr &, unsigned = 4);
+ bool is_listening() const { return listening; }
virtual StreamSocket *accept();
};
virtual StreamSocket *accept();
};