我的问题是:它到底做了什么?例如,如果我将其设置为true,它对我想要写入TUN设备的包(datagrams?)有什么作用?据我所知,不意味着所有要写入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阻止"。
答案 0 :(得分:1)
它确实是指阻止I / O,与阻塞流量或如何处理数据包无关。相反,它会改变程序与文件描述符的交互方式。
在阻塞模式下,read()/write()
之类的操作将阻塞,直到某些数据被传输(或发生错误),而在非阻塞模式下,操作可能会立即返回(使用EAGAIN
或{{1如果文件描述符当前没有准备就绪,那么操作就会阻塞。