从未做过这个东西,从零开始
首先是对go语言进行学习,这个不多赘述
开发思路:模块化编程,将一个个功能分开实现,方便排查错误,保证独立性且可以反复使用
为了输出美观设定了输出色彩
简单说一下一些功能的实现
这里设定每隔30秒收不到客户端的数据则自动退出连接
由一个协程来对连接进行计时,30秒内如果再次收到则刷新时间由channel进行控制
另一个协程处理心跳的channel
这里主要用到了conn.read() 已经conn.write()
分别从conn处进行读和写,在操作执行成果给出提示,失败则直接输出error
这里主要是进行文件操作,
上传先是获取upload命令,然后输入文件路径,之后读出文件,并且按照相同方式发送出去
下载则是分开处理,先由客户端发送“下载”信息,之后再接收客户端发送过来的数据,并且按照设定名字+获取时间的形式来设定文件名字
和上面接收数据形式一样发送指令到客户端,再返回过来截图
这里采用了base32+base64的形式来对我们传输的每一个数据进行加密解密
通过循环增加连接协程,并且建立map来对这些连接进行储存,实现了自由选择对应客户端并且进行操作,