Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

提供企业级网络设备之间数据的快速,安全,可靠的P2P传输协议

License

NotificationsYou must be signed in to change notification settings

PearInc/FogConnect

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FogConnet 是用于P2P网络中连接、调度、传输等功能于一体的组件

架构图

fog connect 架构图

特性

  • 支持多种传输控制协议(UDP、QUIC、RTC、KCP、uTP、SCTP等)
  • 探测NAT类型,并收集和维护用于P2P连接的<IP:Port>列表
  • 支持双向 “打洞” 和高级端口预测
  • NAT类型最优匹配组合策略
  • 连接控制与物理距离最近原则
  • 所有网络信号采用事件机制处理
  • 对资源消耗极少(一般运行状态下内存占用3-5M,峰值不超过50M)
  • API简单、易懂,支持多种方式接入

快速开始

FogConnect depends on following packages:

Supported Environment

  • Linux(e.g. Ubuntu, OpenWrt), Windows, MacOS, Android, iOS

For example, on Ubuntu/LinuxMint

Prepare deps

Install common deps:

sudo apt-get install git make

Install dependencies:

sudo apt-get install openssl libssl-dev libwebsockets-dev libjansson-dev libevent-dev libglib2.0-dev
Build and run examples
make

性能测试

平均P2P建立连接时间:1.2~2秒

系统环境

Ubuntu 16.04.3 LTS
Intel(R) Core(TM) i5-7500 CPU @ 2.40 GHz
Mem: 7840 MB

Examples

Echo server

#include"fog_connect.h"charCRLF[2]="\r\n";voidon_connect(void*arg) {}voidon_recv(void*arg) {fc_info*ud= (fc_info*)arg;size_tlen=0;char*msg=evbuffer_readln(ud->buff,&len,EVBUFFER_EOL_CRLF);if (msg!=NULL) {fc_send(ud->pr_connect,msg,len);fc_send(ud->pr_connect,CRLF,sizeof(CRLF));printf("sending: %s\n",msg);fc_free(msg);    }}voidon_close(void*arg) {}intmain() {fc_setup("**:**:**:**:**:1c");fc_set_callback(on_connect,on_recv,on_close);getchar();fc_exit();return0;}

Client

#include"fog_connect.h"voidon_connect(void*arg) {fc_info*ud= (fc_info*)arg;char*msg=strdup("hello\r\n");fc_send(ud->pr_connect,msg,strlen(msg));printf("sending: %s\n",msg);fc_free(msg);}voidon_recv(void*arg) {fc_info*ud= (fc_info*)arg;size_tlen=0;char*msg=evbuffer_readln(ud->buff,&len,EVBUFFER_EOL_CRLF);if (msg!=NULL) {printf("receiving: %s\n",msg);fc_free(msg);fc_disconnect(ud->pr_connect);    }}voidon_close(void*arg) {}intmain() {fc_setup("**:**:**:**:**:2c");fc_connect_peer("**:**:**:**:**:1c",FOG_TRANSPORT_PROTOCOL_KCP,on_connect,on_recv,on_close);getchar();fc_exit();return0;}

开发者简介

  • 吴必磊(w@pear.hk)
    • 知名数据恢复软件AnyDataRecovery Pro作者、反汇编与破解专家(同时也是不知名的健身教练)
  • 万昌龙(d@pear.hk)
  • 陈柳州(66@pear.hk)

About

提供企业级网络设备之间数据的快速,安全,可靠的P2P传输协议

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp