我公司的软件有一个问题,就是这个软件只能走socket通道传输数据。如果用户设置了代理服务器,并且只开了http服务的话,这个软件就跑不起来了。为了解决这个问题,我装了一个协议转换软件socks2http,将socks请求转换为http请求,我的软件就又跑起来了。但郁闷的是,我老大不让我采用第三方的软件解决这个问题。现在,我必须考虑用编程的方法解决这个bug。我技术水平是:读过一些网络方面的书,对网络有基本的概念;另外还学过一些socket的编程。但是,这点儿招数解决这个问题有点力不从心。请各位给我一些关于技术方面的指导好吗?谢谢。

解决方案 »

  1.   

    没有做过,应该用HTTP隧道吧,
    好像就是将你的请求数据封装成HTTP协议的数据包,然后通过HTTP协议发送出去,接受端接受到这种数据包后先剥掉HTTP封装,然后获得真正的数据。
    找找看吧,应该有资料的。
    good luck!
      

  2.   

    谢谢各位兄弟的支持:)to Caps77(厉兵秣马) :
    用户的机器确实不能直接上网,通过代理服务器才能访问外网。可现在的情况是,代理服务器只开了http端口,用户浏览网页是没问题的,但是使用那些走socket通道的软件是有问题的(例如我们公司的产品)。我觉得原因可能在于socket请求通过http端口发不出去,所以只有将socks请求转换为http请求才行。
      

  3.   

    啊!是我没看清题目,不好意思^_^那只好用 LongLongAgoImBoy(ThereIsAMe) 的方法了
      

  4.   

    呵,谢谢各位,我找到资料了,在http://www.codeguru.com/Cpp/I-N/internet/http/article.php/c6209/还有源代码。