/**
     * @brief Set a UNIX domain datagram socket up
     *
     * @param path The path to bind this socket to
     * @param flags Flags for `socket(2)`
     */
    void unix_dgram_client::setup(const char* path, int flags)
    {
	if ( sfd != -1 )
	    throw socket_exception(__FILE__,__LINE__,"unix_dgram_client::unix_dgram_client: Socket is already set up!\n");

	sfd = create_unix_dgram_socket(path,flags);

	if ( path )
	    _path.assign(path);

	if ( sfd < 0 )
	    throw socket_exception(__FILE__,__LINE__,"unix_dgram_client::unix_dgram_client: Could not create unix dgram client socket!\n");

    }
    /**
     * @brief Set a UNIX domain datagram socket up
     *
     * @param path The path to bind this socket to
     * @param flags Flags for `socket(2)`
     */
    void unix_dgram_client::setup(const char* path, int flags)
    {
	if ( sfd != -1 )
	    throw socket_exception(__FILE__,__LINE__,"unix_dgram_client::unix_dgram_client: Socket has already been set up!",false);

	sfd = create_unix_dgram_socket(path,flags);

	if ( sfd < 0 )
	    throw socket_exception(__FILE__,__LINE__,"unix_dgram_client::unix_dgram_client: Could not create unix dgram client socket!");

	if ( path )
	    _path.assign(path);


	is_nonblocking = flags & SOCK_NONBLOCK;
    }