Skip to content

WarmBrew/EileCores

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

使用说明

增强型文件传输服务器

本项目包含一个基于Go语言开发的文件传输服务器和客户端,支持文件的压缩、断点续传以及文件完整性校验。

目录结构

  • server.go: 服务器端代码
  • client.go: 客户端代码
  • uploads/: 服务器接收并存储上传文件的目录
  • server.log: 服务器日志文件

前提条件

  • 安装 Go 1.16 或更高版本。

安装依赖

服务器端和客户端均使用 github.com/fatih/color 库来实现终端输出的彩色显示。请在编译前安装该依赖:

go get github.com/fatih/color

编译

服务器端

进入服务器代码所在目录,运行以下命令编译服务器:

go build -o server server.go

客户端

进入客户端代码所在目录,运行以下命令编译客户端:

go build -o client client.go

使用方法

启动服务器

./server -port=59999
  • -port: 指定服务器监听的端口,默认为 59999

服务器启动后,会在终端显示欢迎信息和当前的传输状态,包括活跃连接数、传输的总字节数和当前速度等。

使用客户端传输文件

传输单个文件

./client -file=/path/to/file -ip=server_ip:59999
  • -file: 指定要传输的文件路径。
  • -ip: 指定服务器的IP地址和端口,默认为 localhost:59999

压缩并传输目录

./client -path=/path/to/directory -output=output.zip -ip=server_ip:59999
  • -path: 指定要压缩的目录路径。
  • -output: 指定压缩后的ZIP文件名。如果不指定,默认使用目录名加 .zip 后缀。
  • -ip: 指定服务器的IP地址和端口,默认为 localhost:59999

断点续传

客户端在传输过程中会自动检测是否需要断点续传。如果传输中断,再次运行相同的传输命令,客户端会从上次中断的位置继续传输。

日志

服务器运行过程中会生成 server.log 文件,记录详细的日志信息,包括客户端连接、文件传输状态及错误信息等。

文件存储

服务器接收到的文件会存储在 ./uploads 目录下。请确保服务器运行目录下存在该目录,或者在代码中修改 storageDir 变量指定其他存储路径。

注意事项

  • 网络稳定性: 为了确保传输的稳定性,建议在网络较为稳定的环境下进行大文件传输。
  • 文件权限: 确保服务器有权限在指定的存储目录中创建和写入文件。
  • 安全性: 当前版本未实现身份验证和加密传输,请在生产环境中考虑增加安全措施。
  • 错误处理: 客户端在传输过程中会尝试多次重试,如果所有重试均失败,请检查网络连接和服务器状态。

About

文件压缩、外发工具

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 100.0%