- Golang -

archive/tar 实现打包压缩及解压

通过 archive/tar 包实现 Golang 对文件的打包压缩及解包,tar.gz 这种格式 这个包比较简单,就是将文件进行打包和解包,要是熟悉 Linux 下的 tar 命令这个就很好理解了。 主要是通过 tar.Reader 读取 tar 包,通过 tar.Writer 写入 tar 包,在写入的过程中再设置一下头,详细的过程以示例的方式进行展示,可以查看代码里面的注释。 参考: 标准库 tar 中文文档 标准库 tar 官方文档 单个文件操作 这个非常简单,就是读取一个文件,进行打包及解包操作

Golang实现P2P之UDP打洞 (IPV6 挺香的估计后面用不到了)

当今互联网到处存在着一些中间件(MIddleBoxes),如NAT和防火墙,导致两个(不在同一内网)中的客户端无法直接通信。 这些问题即便是到了IPV6时代也会存在,因为即使不需要NAT,但还有其他中间件如防火墙阻挡了链接的建立。 目前部署的中间件多都是在C/S架构上设计的,其中相对隐匿的客户机主动向周知的服务端(拥有静态IP地址和DNS名称)发起链接请求。 大多数中间件实现了一种非对称的通讯模型,即内网中的主机可以初始化对外的链接,而外网的主机却不能初始化对内网的链接, 除非经过中间件管理员特殊配置。