بروتوكول شبكة افتراضية سريع وموثوق وغير تدخلي موجه للرسائل لـ Java 6+.
حاليا في ألفا.
JNetRobust هو بروتوكول شبكة افتراضية يقع بين طبقة النقل والتطبيق.
فوائد
المحاذير
إذا لم تكن بحاجة إلى الموثوقية، فاستخدم UDP.
إذا كنت بحاجة إلى الموثوقية ويمكنك الانتظار حتى يتم التحقق من صحتها، فاستخدم TCP.
إذا كنت بحاجة إلى الموثوقية، ولكنك تستفيد من تلقي بيانات لم يتم التحقق من صحتها دون أي زمن انتقال، فجرّب JNetRobust.
إنها مكتبة ولا تفرض أي قيود على كيفية استخدامها:
يمكنك استخدام التطبيق المرجعي الذي يجمع كل هذه القطع معًا للبدء؛ مثال مدرج أدناه.
الرجوع إلى صفحات ويكي للحصول على معلومات إضافية!
فيما يلي مثال بسيط وكامل لاستخدام التنفيذ المرجعي المقدم:
شفرة
public class BidirectionalMain {
public static void main ( String [] args ) throws Exception {
String receivedMessage ;
// host addresses
InetSocketAddress ADDRESS_A = new InetSocketAddress ( InetAddress . getLocalHost (), 12345 );
InetSocketAddress ADDRESS_B = new InetSocketAddress ( InetAddress . getLocalHost (), 12346 );
// setup ProtocolHosts using the host's local address and registering all serialization dataTypes
// ProtocolHost supports multiplexing between different peers using respective topicId, remote address and dataType
ProtocolHost protocolHostA = new ProtocolHost ( "A" , ADDRESS_A , String . class );
ProtocolHandle < String > protocolHandleA = protocolHostA . register ( Byte . MIN_VALUE , ADDRESS_B );
ProtocolHost protocolHostB = new ProtocolHost ( "B" , ADDRESS_B , String . class );
ProtocolHandle < String > protocolHandleB = protocolHostB . register ( Byte . MIN_VALUE , ADDRESS_A );
// send from A
protocolHandleA . send ( Arrays . asList ( "Hi!" , "How you doing?" ));
System . out . println ();
Thread . sleep ( 100 );
// receive at B
while (( receivedMessage = protocolHandleB . receive ()) != null ) {
System . out . println ( "<B> t " + receivedMessage );
}
// send from B
protocolHandleB . send ( "Howdy! Fine, thanks." );
System . out . println ();
Thread . sleep ( 100 );
// receive at A
while (( receivedMessage = protocolHandleA . receive ()) != null ) {
System . out . println ( "<A> t " + receivedMessage );
}
}
}
إخراج وحدة التحكم
[A]: Data sent -32767 Hi!
[A]: Data sent -32766 How you doing?
[B]: Data received ordered -32767 Hi!
[B]: Data received -32767 Hi!
[B]: Data received ordered -32766 How you doing?
[B]: Data received -32766 How you doing?
[B]: Newest data received -32766 How you doing?
<B> Hi!
<B> How you doing?
[B]: Data sent -32767 Howdy! Fine, thanks.
[A]: Data was received at other end -32767 Hi!
[A]: Data was received at other end -32766 How you doing?
[A]: Data received ordered -32767 Howdy! Fine, thanks.
[A]: Data received -32767 Howdy! Fine, thanks.
[A]: Newest data received -32767 Howdy! Fine, thanks.
<A> Howdy! Fine, thanks.
مخضرم
<!-- JNetRobust library; mandatory -->
< dependency >
< groupId >com.github.mucaho</ groupId >
< artifactId >jnetrobust-core</ artifactId >
< version >0.0.2</ version >
</ dependency >
<!-- JNetRobust examples; optional -->
< dependency >
< groupId >com.github.mucaho</ groupId >
< artifactId >jnetrobust-samples</ artifactId >
< version >0.0.2</ version >
</ dependency >
الإعداد اليدوي
يمكنك تنزيل jar
من قسم الإصدار واستيرادها إلى مسار الفصل الدراسي الخاص بك.
يمكنك قراءة المستندات على صفحة IO الخاصة بـ JNetRobusts.
القضايا المفتوحة و/أو طلبات السحب المفتوحة . نرحب بشدة بالاقتراحات وتقارير الأخطاء وتحسينات التعليمات البرمجية والميزات الإضافية!
حقوق الطبع والنشر (ج) 2014 موكاهو.
مبل 2.0. إقرأ الشرح المختصر. أود أن أشجعك على المساهمة في هذا المستودع الأصلي عبر طلبات السحب، إذا أجريت أي تعديلات.