如何用http代理进行socket传输,就像QQ的程序.
我做了一个视频语音聊天的程序,用VC 可我想当用SOCKET时在局域网内没代理服务器时
可能不能正常运行,如何象QQ一样可选一下和浏览器一样设置,就可以用SOCKET用别的端口通讯了

解决方案 »

  1.   

    我是这么理解的,如果想用HTTP代理来进行SOCKET的数据的传输,那么这个HTTP的代理应该是具有特定
    功能的
      

  2.   

    http隧道
    http://www.codeproject.com/internet/httptunneling.asp
      

  3.   

    谢谢,HunterForPig,代码以下来正看呢.不知是否能看懂...
    等回来给你加分.
      

  4.   

    if( !ClientSock.Connect( g_ProxyInfo.m_strProxyIP,g_ProxyInfo.m_nProxyPort) ) 

    m_sError = _T("不能连接到代理服务器!"); 
    ClientSock.Close(); 
    return FALSE; 

    char buff[600]; 
    sprintf( buff, "%s%s:%d%s","CONNECT ",GetServerHostName(),GetPort()," HTTP/1.1 User-Agent: MyApp/0.1 "); 
    ClientSock.Send(buff,strlen(buff)); //发送请求 
    memset(buff,0,600); 
    ClientSock.Receive(buff,600); 
    if(strstr(buff, "HTTP/1.0 200 Connection established") == NULL) //连接不成功 

    m_sError = _T("通过代理连接主站不成功!"); 
    ClientSock.Close(); 
    return FALSE; 
    }
      

  5.   

    把信息打包在http消息里面就可以了
      

  6.   

    我找到了看来正确的代码,可编译出错,请帮我看一下.谢谢
    http://community.csdn.net/Expert/topic/3766/3766641.xml?temp=.9258081
      

  7.   

    看了一下,我感觉是_WSAIOW(,),这个宏引起的错误,楼主确认引入的*.h里面有找个宏的定义吗??
    我再编译一下试试....
      

  8.   

    刚才编译了,winsock2.h里面有这个宏的定义,不过我的是11个编译错误,比楼主的少4个,呵呵,再看看!
      

  9.   

    http://community.csdn.net/Expert/topic/3766/3766641.xml?temp=.9258081
    里面的连接错误全是由于socket函数产生的,建议楼主调查这方面的原因,可以找一个socket通讯的例子参照一下!