Exemplo n.º 1
0
int udp_nb_bind(int ls, u_short port)
{
	SOCK_ADDR	listener;
	int		arg;


	memset(&listener, 0, sizeof(listener));
	listener.sin_family = AF_INET;
	listener.sin_port   = htons(port);
	listener.sin_addr.s_addr = INADDR_ANY;

#ifdef macintosh
	if (socket_bind(ls, (struct sockaddr *)&listener, sizeof(listener)) < 0)
#else /* !macintosh */
	if (bind(ls, (struct sockaddr *)&listener, sizeof(listener)) < 0)
#endif /* macintosh */
		return -1;

#ifdef WIN32
	arg = 1;
	if (ioctlsocket(ls, FIONBIO, &arg) < 0)
#elif defined(macintosh)
	arg = socket_fcntl(ls, F_GETFL, 0); 
	arg |= O_NONBLOCK;
	if (socket_fcntl(ls, F_SETFL, arg))
#else
	arg = FNDELAY;
	if (fcntl(ls, F_SETFL, arg) == -1)
#endif
		return -1;

	return 0;
}
Exemplo n.º 2
0
    virtual int SetNonBlocking()
    {
        int err;

#ifdef LOGOG_FLAVOR_POSIX
        int flags;
        flags = socket_fcntl( m_Socket, F_GETFL, 0 );
        flags |= O_NONBLOCK;
        err = socket_fcntl( m_Socket, F_SETFL, flags );
#endif

#ifdef LOGOG_FLAVOR_WINDOWS
        unsigned long parg;
        parg = 1;
        err = ioctlsocket( m_Socket, FIONBIO, &parg );
#endif
        return err;
    }