ตัวอย่างในบทความนี้แบ่งปันรหัสเฉพาะของ Java โดยใช้โหมด UDP เพื่อเขียนโปรแกรมแชทสำหรับการอ้างอิงของคุณ เนื้อหาเฉพาะมีดังนี้
รหัส Java:
/* ใช้โหมด UDP เพื่อเขียนโปรแกรมแชทเพื่อส่งและรับข้อมูล หนึ่งเธรดได้รับและหนึ่งเธรดส่ง เนื่องจากการดำเนินการส่งและรับไม่สอดคล้องกันจึงจำเป็นต้องใช้วิธีการเรียกใช้สองวิธี สองวิธีนี้จะต้องถูกห่อหุ้มในคลาสที่แตกต่างกัน โปรแกรมนี้ไม่สนใจการจัดการข้อยกเว้นบางอย่างและไม่เพิ่มส่วนประกอบ UI นี่เป็นพอร์ตการส่ง 9998 ที่รับการยอมรับพอร์ต 9999 มันใช้ที่อยู่เครือข่ายในพื้นที่ท้องถิ่นดังนั้นฉันจึงได้รับข้อความที่ฉันส่งด้วยตัวเอง [ตัวอย่าง]: โปรแกรมแชทคอนโซลง่าย ๆ*/ นำเข้า Java.net*; นำเข้า Java.io.*; การสาธิตคลาส {โมฆะคงที่สาธารณะหลัก (สตริง [] args) พ่นข้อยกเว้น {datagramsocket sendsocket = dataGramsocket ใหม่ (9998); // ส่ง DataGramSocket รับ DataGramSocket ใหม่ (9999); // รับเธรดใหม่ (msgsend ใหม่ (sendsocket)). start (); // ส่งเธรดเธรดใหม่ (ใหม่ msgrece (recesocket)). start (); // รับเธรด}} คลาส msgsend ใช้งาน runnable // ส่ง {ส่วนตัว datagramsocket dsock; public msgsend (DataGramsocket dsock) {this.dsock = dsock; } โมฆะสาธารณะเรียกใช้ () {bufferedReader bufr = ใหม่ bufferedReader (ใหม่ inputStreamReader (system.in)); สตริง linestr = null; ลอง {ในขณะที่ (จริง) {linestr = bufr.readline (); if (linestr! = null) {ถ้า (linestr.equals ("over886")) {break; } else {byte [] databuf = linestr.getBytes (); DataGrampacket DataPack = // Data Packaging DataGrampacket ใหม่ (Databuf, Databuf.Length, InetAddress.getByName ("192.168.1.255"), // ออกอากาศ 9999 // พอร์ตเป้าหมาย); dsock.send (Datapack); }}}} bufr.close (); dsock.close (); } catch (exception e) {โยน runtimeException ใหม่ ("ส่งล้มเหลว!"); }}} คลาส MSGRECE ใช้งาน runnable // รับ {ส่วนตัว DataGramsocket dsock; msgrece สาธารณะ (DataGramsocket dsock) {this.dsock = dsock; } โมฆะสาธารณะเรียกใช้ () {ลอง {ในขณะที่ (จริง) {byte [] databuf = ไบต์ใหม่ [1024]; DataGrampacket DataPack = DataGampacket ใหม่ (Databuf, Databuf.Length); dsock.receive (Datapack); // บันทึกข้อมูลที่ดึงมาไว้ในสตริงแพ็คเก็ตข้อมูลที่ระบุ ip = dataPack.getAddress (). gethostaddress (); สตริง data = สตริงใหม่ (dataPack.getData (), 0, dataPack.getLength ()); int port = dataPack.getPort (); System.out.println (); System.out.println ("จาก IP"+IP+"<พอร์ตตรงข้าม>:"+พอร์ต+"ข้อความ"); System.out.println (ข้อมูล); }} catch (exception e) {โยน runtimeException ใหม่ ("ยอมรับล้มเหลว!"); } ในที่สุด {dsock.close (); -ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น