diztl
用Go编写的局域网对等文件发现和共享工具!
github
https://github.com/gravetii/diztl
入门
diztl项目是使用JavaFX在Go中用Java编写的前端实现编写的。要开始,请运行以下命令:
go get -v github.com/gravetii/diztl/...
Diztl要求在主机上安装Java 8以使UI工作。
配置步骤
- 制作config-template.ymldiztl的一个简单配置文件的副本,并命名为config.yml- cp config-template.yml config.yml。该config.yml文件是diztl工作所需的实际配置文件。如果要对配置进行任何更改,则这是您要编辑的文件。请注意,此文件在repo中未跟踪(与此不同config-template.yml),这可确保不会公开反映特定于您的环境的更改。如果要公开反映任何更改,则需要进入该config-template.yml文件。
- 或者,您也可以config.yml在.git/info/exclude文件中添加该条目,以便git不会提示您始终将其添加到舞台中。
运行diztl
在项目的根文件夹中:
- go run tracker/main.go:这将在localhost上运行跟踪器节点。
- 指定的本地IP地址Tracker将在config.yml文件以允许Nodes到连接它。
- go run node/main.go:在网络中的任何计算机上的任何位置运行此命令以启动a Node。
- 启动UI(为此,目前,您必须构建位于ui文件夹中的代码并运行它)并发现/共享/下载网络中的文件。
组成部分
Diztl由两个主要组成部分组成:
- 路由:Tracker责任是允许不同Node的人之间的协调和沟通。
- 节点:A Node基本上是网络中的任何对等体。它可以共享资源以及从Node网络中的其他s 请求和下载资源。
当前的实现没有完全分散,因为来自a的搜索查询Node被发送到Tracker其然后跨网络中的所有对等方广播请求,请求它们回复它们可能对呼叫者感兴趣的文件Node。
一旦请求Node决定它想要从目标对等体下载的文件,通信就在两个对等体之间发生而没有任何干预Tracker。
第Node一次启动时,它会索引要在位于其下的默认共享文件夹中共享的所有文件
对于不同请求 - 响应结构的格式,请查看diztl/diztl.proto包含protobuf规范的文件以及gRPC服务定义。
节点UI使用JavaFX以Java实现,JavaFX与节点的gRPC服务器通信以促进用户操作。
内置
- gRPC:该项目使用gRPC作为其通信协议以及协议缓冲区作为数据交换格式。
- JFoenix:JFoenix是JavaFX的材料设计库。
使用截图
您知道哪些好用的局域网共享工具,欢迎评论分享,共同探讨学习
如果觉得文章能够对您有所帮助,可以关注我,你的支持会鼓励我不断分享更多更好的优质文章。
本文来自投稿,不代表本人立场,如若转载,请注明出处:http://www.sosokankan.com/article/890179.html