Exemplo n.º 1
0
// 090706 by HG
EXPORT void libqq_sethttpproxy( struct qqclient* qq, char* ip, ushort port )
{
	struct sockaddr_in addr;
	qq->network = PROXY_HTTP;
	netaddr_set( ip, &addr );
	qq->proxy_server_ip = ntohl( addr.sin_addr.s_addr );
	qq->proxy_server_port = port;
}
Exemplo n.º 2
0
//Create a socket TCP or UDP
int qqsocket_create( int type, char* ip, ushort port )
{
    int fd = 0;
    struct sockaddr_in addr;
    switch( type )
    {
    case TCP:
        fd = socket( PF_INET, SOCK_STREAM, IPPROTO_TCP );
        memset( &addr, 0, sizeof(struct sockaddr_in) );
        addr.sin_family = PF_INET;
        if( ip )
            netaddr_set( ip, &addr ); //addr.sin_addr.s_addr = inet_addr( ip );
        else
            addr.sin_addr.s_addr = INADDR_ANY;
        addr.sin_port = htons( port );
        if( bind( fd, (struct sockaddr*)&addr, sizeof(struct sockaddr_in) ) < 0 )
        {
            DBG("bind tcp socket error!");
            close( fd );
            return -1;
        }
        break;
    case UDP:
        fd = socket( PF_INET, SOCK_DGRAM, IPPROTO_IP );
        memset( &addr, 0, sizeof(struct sockaddr) );
        addr.sin_family = PF_INET;
        if( ip )
            netaddr_set( ip, &addr ); //addr.sin_addr.s_addr = inet_addr( ip );
        else
            addr.sin_addr.s_addr = INADDR_ANY;
        addr.sin_port = htons( port );
        if( bind( fd, (struct sockaddr*)&addr, sizeof(struct sockaddr_in) ) < 0 )
        {
            DBG("bind udp socket error!");
            close( fd );
            return -1;
        }
        break;
    }
    return fd;
}
Exemplo n.º 3
0
//connect a socket to remote server
int qqsocket_connect( int fd, char* ip, ushort port )
{
    struct sockaddr_in addr;
    memset( &addr, 0, sizeof(struct sockaddr_in) );
    addr.sin_family = PF_INET;
    netaddr_set( ip, &addr );
    addr.sin_port = htons( port );
    if( connect( fd, (struct sockaddr*)&addr, sizeof(struct sockaddr_in)) < 0 )
    {
        DBG("qqsocket connect failed.");
        return -1;
    }
    return 0;
}