FogConnect
1.0.0
FogConnet هو مكون يدمج الاتصال والجدولة والنقل والوظائف الأخرى في شبكات P2P.
<IP:Port>
المستخدمة لاتصالات P2Pيعتمد FogConnect على الحزم التالية:
تثبيت عمليات التوزيع المشتركة:
sudo apt-get install git make
تثبيت التبعيات:
sudo apt-get install openssl libssl-dev libwebsockets-dev libjansson-dev libevent-dev libglib2.0-dev
make
متوسط وقت إنشاء اتصال P2P: 1.2 إلى 2 ثانية
أوبونتو 16.04.3 إل تي إس
وحدة المعالجة المركزية Intel(R) Core(TM) i5-7500 بسرعة 2.40 جيجاهرتز
الذاكرة: 7840 ميجابايت
#include "fog_connect.h"
char CRLF [ 2 ] = "rn" ;
void on_connect ( void * arg ) {
}
void on_recv ( void * arg ) {
fc_info * ud = ( fc_info * ) arg ;
size_t len = 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: %sn" , msg );
fc_free ( msg );
}
}
void on_close ( void * arg ) {
}
int main () {
fc_setup ( "**:**:**:**:**:1c" );
fc_set_callback ( on_connect , on_recv , on_close );
getchar ();
fc_exit ();
return 0 ;
}
#include "fog_connect.h"
void on_connect ( void * arg ) {
fc_info * ud = ( fc_info * ) arg ;
char * msg = strdup ( "hellorn" );
fc_send ( ud -> pr_connect , msg , strlen ( msg ));
printf ( "sending: %sn" , msg );
fc_free ( msg );
}
void on_recv ( void * arg ) {
fc_info * ud = ( fc_info * ) arg ;
size_t len = 0 ;
char * msg = evbuffer_readln ( ud -> buff , & len , EVBUFFER_EOL_CRLF );
if ( msg != NULL ) {
printf ( "receiving: %sn" , msg );
fc_free ( msg );
fc_disconnect ( ud -> pr_connect );
}
}
void on_close ( void * arg ) {
}
int main () {
fc_setup ( "**:**:**:**:**:2c" );
fc_connect_peer ( "**:**:**:**:**:1c" , FOG_TRANSPORT_PROTOCOL_KCP , on_connect , on_recv , on_close );
getchar ();
fc_exit ();
return 0 ;
}