zoukankan      html  css  js  c++  java
  • iOS进阶之UDP代理鉴权过程

      上一篇介绍的是TCP代理的鉴权过程,这篇将介绍UDP代理的大致鉴权过程。

      在UDP鉴权过程中,有几点是需要注意的。首先,UDP是一种无连接协议,不需要连接,使用广播的方式;其次,为了通过鉴权,所以需要使用TCP的连接过程;最后,需要代理服务器根据是否有UDP数据包的判断来保持TCP的长连接。

      在上一篇中已经介绍了需要的文件,这里就不再重复了。类似TCP,同样创建一个文件SJXUDPSocketClient,继承自NSURLProtocol,其他信息可参看demo,这里直接介绍关键步骤。

      第一步:设置UDP代理地址和端口,分别绑定并且监听本地端口和远端端口。

        

      第二步:当UrlProtocol拦截到UDP请求时,会调用 - (void)udpSocket:(GCDAsyncUdpSocket *)sock didReceiveData:(NSData *)data fromAddress:(NSData *)address withFilterContext:(nullable id)filterContext 方法,在该方法中判断UDP请求的来源,并进行对应的操作。

        

      如果来源为本机,则通过TCP连接与远端代理进行鉴权。

          

        

      第三步:与远端代理服务器进行鉴权的第一步,同上一篇文章中的第一步鉴权,同样以 050102 为例。

      第四步:如果第一步鉴权通过,则进行第二步鉴权,同上一篇文章中的第二步鉴权,根据自己的需求,拼接自己的用户名和密码,发送给远端代理服务器。

      第五步:如果第二步鉴权通过,则向代理服务器发起UDP请求。

        

        

      第六步:如果代理服务器接收到命令,并且鉴权通过,则会分配一个IP和PORT,进行转发UDP请求。

        

      以上就是UDP代理鉴权的大致过程,这是自己对UDP代理的理解,希望各位大神多多指正。

      GitHub:https://github.com/sjxjjx/SJXSocket

  • 相关阅读:
    sscanf 函数
    hdu 1232 畅通工程 解题报告
    hdu 2048 神、上帝以及老天爷 解题报告
    hdu 2049 不容易系列之(4)——考新郎 解题报告
    hdu 2013 蟠桃记 解题报告
    hdu 2093 考试排名 解题报告
    分糖果 的解题报告
    hdu 2017 字符串统计 解题报告
    表的连接方式:NESTED LOOP、HASH JOIN、SORT MERGE JOIN【转】
    sort_area_size设置【转】
  • 原文地址:https://www.cnblogs.com/sjxjjx/p/8390998.html
Copyright © 2011-2022 走看看