代理.知识点

1、(20191114)

 一直不太明白 代理上网 的具体意思,今天 大概的查了下:

  1.1、全局代理:我是在使用 shadowsocks的C#客户端(Windows版) 时接触到这个词的,然后查了一下,怎么样才算是 全局代理。

   (1)有人说直接IE里面设置的就是全局代理,有人说需要软件设置才能实现全局代理(里面涉及到ISP之类的)。很乱很烦,就不能简单的 设置就能代理么?

   (2)回到 源码"zclxy-shadowsocks-windows-4.1.7.1"[ shadowsocks的C#客户端(Windows版)]中 去寻找,发现貌似 它貌似也是设置的 IE里面的 "代理服务器"(但是他是通过 sysproxy.exe设置的,不知该exe里面到底干了啥... 但是现象上看 确实是"代理服务器"设置发生了变化...)

 

 一些测试:(现在没有 VPS服务器(刚买的IP就封了...),随便输了个服务器IP(肯定连不通) 来用)(Shadowsocks.exe:由"zclxy-shadowsocks-windows-4.1.7.1"编译出来的)(Win7x64)

  发现,Shadowsocks.exe设置成 全局模式,浏览器 无法上网了,但是 自己写的Winsock还能上网(TCP/UDP都行),自己写的 QTcpSocket不能上网了 QUdpSocket还是能上网

    我记得 之前查过帖子,说 QTcpSocket在Qt5.8之后就默认根据系统的代理设置而变化。(即 Windows里面设置了代理 就自动走代理,没有设置代理就不走代理)

      帖子里还说 chrome的代理就是用的 Windows默认代理信息(我测试下来 貌似确实也是这样的)

    这里的现象也就说明 Winsock(TCP&UDP)和QUdpSocket 不会随着Windows代理自动变化。

  于是想到,那我的代码里面 如果需要 Winsock走代理怎么办呢?搜到一篇:CAsyncSocketEx - Replacement for CAsyncSocket with proxy and SSL support - CodeProject.html(https://www.codeproject.com/Articles/3855/CAsyncSocketEx-Replacement-for-CAsyncSocket-with-p)里面有Winsock走代理的方式(主要是看 类CAsyncSocketExLayer),貌似 不简单 不方便。

    下载到了 SH的机子 目录"D:\Documents\Downloads\CAsyncSocketEx"中。

   想到 Qt里面走代理的话 貌似蛮方便的,但是注意一点:我发现 QTcpSocket和QUdpSocket的 连接&读数据&发数据 等的 槽&函数调用 都不能在子线程里面弄 会报错的。

2、

3、

4、

5、

 

posted @ 2019-11-14 16:16  CppSkill  阅读(904)  评论(2编辑  收藏  举报