func Select(cases []SelectCase) (chosen int, recv Value, recvOK bool)
Args
- cases []SelectCase 使用此参数之前要设置SelectCase,告诉Select目的。
Return
- chosen int 返回选择的channel序号
- recv Value 返回信道的值,类型是reflect.Value
- recvOk bool 返回false,如果信道被关闭。
1 | package main |
func Select(cases []SelectCase) (chosen int, recv Value, recvOK bool)
Args
Return
1 | package main |
最近入职公司需要用到OpenVPN连接工作网络,因为程序员都是懒惰的,所以折腾发现了一些技巧可以提高效率(其实是少点几下鼠标…),废话不多说,下面开始正题。
这个没什么说的,官网地址下载安装即可,记得用管理员权限运行。
https://openvpn.net/index.php/open-source/downloads.html
公司采用公钥认证,所以把公司给你的配置文件统统拷贝到 C:\Program Files\OpenVPN\config 目录下,其中包括证书,key,配置文件,如果有多个VPN网络记得改动文件名,然后也得修改OpenVPN配置文件中的文件名,这个网上有一大堆教程。
这时候你打开OpenVPN-GUI应该就可以连接到公司内网了。
公司的私钥使用了密码进行加密,所以连接时会提示输入密码,这个当然不能忍,首先新建一个key.txt
,里面贴上你的密钥,然后打开你的OpenVPN配置文件,就是前面拷贝进config目录以.ovpn
为后缀的文件,在最后添加一行askpass key.txt
,保存重新打开客户端连接就不会提示输入密钥了。
bin\tapinstall.exe install driver\OemVista.inf tap0901
,最后的tap0901对应于driver目录下的文件名,不一致自行修改。最后打开系统网络连接看看是否有两个TAP虚拟网卡,有即操作成功了,然后可以重命名网卡名称,如TAP01
,没有自己检查下是否权限问题。这时候就可以测试下多个网络连接了。dev-node
这一行,给每个网络分配好网卡,不能有冲突,如A.ovpn中为dev-node TAP01
,B.ovpn中为dev-node TAP02
打开OpenVPN快捷方式属性,在目标一栏最后加上--connect A.ovpn
,可以指定多个配置文件同时拨号,如--connect A.ovpn --connect B.ovpn
,注意和前面的路径有个空格,确定以后双击即可直接连接上两个VPN,如果还想开机启动的把快捷方式丢到启动目录吧。