代码之家  ›  专栏  ›  技术社区  ›  itarill

什么是Android VPN服务。生成器setBlocking

  •  2
  • itarill  · 技术社区  · 7 年前

    我的问题是:它到底有什么作用?例如,如果我将其设置为true,它对包(数据报)有什么作用我想写入TUN设备?据我所知 意味着将丢弃要写入TUN设备的所有数据包,而不是以另一种方式进行处理。这是否意味着 this ?

    因此,我只能追踪到它的功能:

    public Builder setBlocking(boolean blocking) {
        mConfig.blocking = blocking;
        return this;
    }
    

    还有那个

    public class Builder {
        private final VpnConfig mConfig = new VpnConfig();
        //other stuff here ...
    }
    

    我还读了 official description ,但我仍然不清楚。谷歌搜索它只会得到与“如何绕过VPN阻塞”相关的搜索结果。

    1 回复  |  直到 7 年前
        1
  •  2
  •   ecdsa    7 年前

    它指的是阻塞I/O,与阻塞流量或如何处理数据包无关。相反,它会更改程序与文件描述符的交互方式。

    在阻塞模式下,操作如下 read()/write() 将阻塞,直到传输了一些数据(或发生错误),而在非阻塞模式下,操作可能会立即返回(带有 EAGAIN EWOULDBLOCK )如果文件描述符当前未就绪,操作将被阻止。