بروتوكول UDP --- المستخدم هو بروتوكول طبقة النقل الموجهة نحو بيانات البيانات. UDP لا يوفر الموثوقية. إنه يرسل فقط بيانات البيانات المرسلة بواسطة تطبيقات على طبقة IP ، لكنها لا تضمن أنه يمكنها الوصول إلى الوجهة ، ولا تضمن الترتيب الذي تصل به حزم البيانات. نظرًا لأن UDP لا يحتاج إلى إنشاء اتصال بين العميل والخادم قبل إرسال بيانات البيانات ، ولا توجد آلية مثل إعادة الإرسال المهلة ، فإن سرعة الإرسال سريعة جدًا.
تنفيذ UDP في Java:
* UDP:
* عميل:
* 1. إنشاء كائن المقبس لاتصالات UDP-datagramsocket (لإرسال وتلقي بيانات UDP) --- مقبس DataGram
* 2. إعداد البيانات ، حزمة التغليف --- datagrampacket (حزمة البيانات)
* 3. إرسال البيانات ، من خلال طريقة إرسال
* 4. أغلق كائن مقبس كائن المقبس
* جانب الخادم: تلقي البيانات
* 1. قم بإنشاء كائن مقبس المقبس وربط رقم المنفذ
* 2. قم بإنشاء كائن الحزمة ، وإنشاء صفيف فارغ ، والاستعداد لتلقي البيانات
* 3. تلقي البيانات
* 4. أغلق المورد
* طريقة بث UDP:
* يمكن لجميع المضيفين في نفس قطاع الشبكة استلامه ، شريطة أن يستمع المنفذ
* يرسل العميل بثًا ، والخادم الذي يمكّن مراقبة المنفذ لتلقي وطباعة الرسائل
* تنفيذ البث: يتم إرسال البث من قبل العميل ويستلمه الخادم
* سلسلة مضيف = "255.255.255.255" ؛ // البث العنوان جميع المضيفين
؛
تنفيذ الكود:
العميل (إرسال):
استيراد java.io.ioException ؛ استيراد java.net.datagrampacket ؛ استيراد java.net.datagramsocket ؛ استيراد java.net.inetaddress ؛ استيراد java.net.socketexception ؛ // 1. قم بإنشاء كائن // إنشاء مقبس بيانات وربطه بأي منفذ متاح على المضيف المحلي. DataGramSocket Socket = datagramsocket () جديد ؛ // 2. بايت التغليف [] arr = "العميل: هاها ...". getBytes () ؛ . // 3. إرسال socket.send (حزمة) ؛ // 4. أغلق socket.close () ؛ }}
جانب الخادم (جانب المتلقي):
استيراد java.io.ioException ؛ استيراد java.net.datagrampacket ؛ استيراد java.net.datagramsocket ؛ استيراد java.net.socketexception ؛ استيراد java.util.arrays ؛ فئة عامة udp_server DatagramSocket (4000) ؛ // 2 byte [] arr = new byte [1024] ؛ حزمة datagrampacket = datagrampacket جديد (arr ، arr.length) ؛ // 3 عند تشغيل البرنامج ، ستكون طريقة الاستقبال في ServersiteCounce.Receive (الحزمة) ؛ // جلب البيانات من بايت الحزمة [] arr1 = packet.getData () ؛ System.out.println (سلسلة جديدة (ARR1)) ؛ // 4 serversocket.close () ؛ }}
نتيجة:
شرائح الشبكة الثلاثة الأولى هي خوادم مع رقم المنفذ 4000 على جميع المضيفين مع رقم المنفذ 10.0.122. طالما أنها مفتوحة ، يمكن استلامها-
العميل: هاها. . . .
نموذج البث أعلاه القائم على UDP في Java (مثال على التفسير) هو كل المحتوى الذي أشاركه معك. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.