UDP --- โปรโตคอล DataGram ผู้ใช้เป็นโปรโตคอลการขนส่งที่มุ่งเน้นดาต้าแกรมแบบง่าย UDP ไม่ได้ให้ความน่าเชื่อถือ มันแค่ส่งดาต้าแกรมที่ส่งโดยแอปพลิเคชันไปยังเลเยอร์ IP แต่ไม่รับประกันว่าพวกเขาสามารถไปถึงปลายทางและไม่รับประกันคำสั่งซื้อแพ็กเก็ตข้อมูลมาถึง เนื่องจาก UDP ไม่จำเป็นต้องสร้างการเชื่อมต่อระหว่างไคลเอนต์และเซิร์ฟเวอร์ก่อนส่งดาต้าแกรมและไม่มีกลไกเช่นการส่งคืนหมดเวลาความเร็วการส่งจึงเร็วมาก
การใช้งาน UDP ใน Java:
* UDP:
* ลูกค้า:
* 1. สร้างวัตถุซ็อกเก็ตสำหรับ UDP Communication-Datagramsocket (สำหรับการส่งและรับข้อมูล UDP) --- ซ็อกเก็ต DataGram
* 2. เตรียมข้อมูลแพ็คเกจการห่อหุ้ม --- DataGrampacket (แพ็คเกจข้อมูล)
* 3. ส่งข้อมูลผ่านวิธีการส่ง
* 4. ปิดวัตถุซ็อกเก็ตวัตถุซ็อกเก็ต
* ด้านเซิร์ฟเวอร์: รับข้อมูล
* 1. สร้างวัตถุซ็อกเก็ตซ็อกเก็ตและผูกหมายเลขพอร์ต
* 2. สร้างวัตถุแพ็คเกจสร้างอาร์เรย์ที่ว่างเปล่าและเตรียมรับข้อมูล
* 3. รับข้อมูล
* 4. ปิดทรัพยากร
* วิธีการออกอากาศ UDP:
* โฮสต์ทั้งหมดในเซ็กเมนต์เครือข่ายเดียวกันสามารถรับได้โดยที่พอร์ตจะต้องฟัง
* ไคลเอนต์ส่งการออกอากาศและเซิร์ฟเวอร์ที่ช่วยให้การตรวจสอบพอร์ตรับและพิมพ์ข้อความ
* การใช้งานการออกอากาศ: การออกอากาศถูกส่งโดยไคลเอนต์และได้รับจากเซิร์ฟเวอร์
* สตริงโฮสต์ = "2555.255.255.255"; // การออกอากาศตัวแทนโฮสต์ทั้งหมด
* 10.0.122.255 ---- แสดงให้เห็นว่าโฮสต์ทั้งหมดที่มีสามกลุ่มเครือข่ายแรกคือ 10.0.122
การใช้รหัส:
ลูกค้า (ส่ง):
นำเข้า java.io.ioException; นำเข้า java.net.datagrampacket; นำเข้า java.net.datagramsocket; นำเข้า java.net.inetaddress; นำเข้า java.net.socketexception; นำเข้า java.net.unknownhostexception; // 1. สร้างวัตถุ // สร้างซ็อกเก็ตดาต้าแกรมและผูกไว้กับพอร์ตใด ๆ ที่มีอยู่ใน localhost DataGramSocket Socket = ใหม่ DataGramSocket (); // 2. Packaging byte [] arr = "ไคลเอนต์: ฮ่าฮ่า ... ". getBytes (); // สี่พารามิเตอร์: ความยาวของแพ็คเก็ตของแพ็คเก็ตโฮสต์ออบเจ็กต์พอร์ตหมายเลขพอร์ตข้อมูลแพ็คเก็ต = ใหม่ DataGampacket (arr, arr.length, inetaddress.getByName ("10.0.122.255"), 4000); // 3. ส่ง socket.send (แพ็คเก็ต); // 4. ปิดซ็อกเก็ตทรัพยากร. close (); -ด้านเซิร์ฟเวอร์ (ด้านตัวรับสัญญาณ):
นำเข้า java.io.ioException; นำเข้า java.net.datagrampacket; นำเข้า java.net.datagramsocket; นำเข้า java.net.socketexception; นำเข้า java.util.arrays; DataGramsocket (4000); // 2 ไบต์ [] arr = ไบต์ใหม่ [1024]; แพ็คเก็ต DataGrampacket = DataGampacket ใหม่ (arr, arr.length); // 3 เมื่อโปรแกรมกำลังทำงานวิธีการรับจะอยู่ในสถานะการฟัง serversocket.receive (แพ็คเก็ต); // ดึงข้อมูลจากแพ็คเกจไบต์ [] arr1 = packet.getData (); System.out.println (สตริงใหม่ (arr1)); // 4 serversocket.close (); -
ผลลัพธ์:
สามกลุ่มเครือข่ายแรกคือเซิร์ฟเวอร์ที่มีหมายเลขพอร์ต 4000 บนโฮสต์ทั้งหมดที่มีหมายเลขพอร์ต 10.0.122 ตราบใดที่พวกเขายังเปิดอยู่พวกเขาสามารถรับได้-
ลูกค้า: ฮ่าฮ่า. - - -
แบบฟอร์มการออกอากาศข้างต้นตาม UDP ใน Java (ตัวอย่างคำอธิบาย) เป็นเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น