ข้อมูลไคลเอนต์จะถูกอ่านผ่านสตรีมอินพุตและตามลำดับมันจะถูกนำไปใช้ผ่านสตรีมเอาต์พุต
รหัสคลาสเซิร์ฟเวอร์:
นำเข้า java.io.bufferedreader; นำเข้า java.io.ioexception; นำเข้า java.io.inputstream; นำเข้า java.io.inputStreamReader; นำเข้า java.io.OutputStream; นำเข้า java.io.printwriter; นำเข้า Java.net.serversocket; java.util.logging.logger;/** * * @author whn6325689 */เซิร์ฟเวอร์คลาสสาธารณะ {// เซิร์ฟเวอร์โมฆะคงที่สาธารณะคงที่ (สตริง [] args) {ลอง {// 1 สร้างซ็อกเก็ตฝั่งเซิร์ฟเวอร์นั่นคือ Serversocket ระบุพอร์ตที่ถูกผูกไว้และฟังพอร์ตนี้ Serversocket Serversocket = Serversocket ใหม่ (8888); // 2 เรียกเมธอด Serversocket Accept () เพื่อรอให้ไคลเอนต์เชื่อมต่อ System.out.println ("== เซิร์ฟเวอร์กำลังจะเริ่มต้นรอให้ไคลเอนต์เชื่อมต่อ =="); ซ็อกเก็ตซ็อกเก็ต = serversocket.accept (); // 3 รับสตรีมอินพุตเพื่ออ่านข้อมูลการเข้าสู่ระบบที่ส่งโดยไคลเอนต์อินพุตสตรีมคือ = socket.getInputStream (); // byte สตรีมอินพุตอินพุตอินพุต isr = new inputStreamReader (IS); // แปลงไบต์สตรีมเป็นสตรีมอักขระ // เพิ่มข้อมูลบัฟเฟอร์บัฟเฟอร์ ในขณะที่ ((info = bufferedreader.readline ())! = null) {system.out.println ("ฉันเป็นเซิร์ฟเวอร์และข้อมูลที่ส่งโดยไคลเอนต์คือ:"+info);} socket.shutdownInput (); // 4 รับกระแสเอาต์พุตและตอบสนองต่อคำขอ OutputStream OS = Socket.GetOutputStream (); PrintWriter PW = New PrintWriter (OS); // แปลงเป็น Print Stream Pw.Write ("ยินดีต้อนรับ!"); pw.flush (); // แคชสด // 5 ปิดแหล่งข้อมูลที่เกี่ยวข้อง bufferedReader.close (); is.close (); isr.close (); socket.close (); serversocket.close (); os.close (); pw.close ();} catch (ioexception ex) {logger.getLogger (เซิร์ฟเวอร์รหัสคลาสไคลเอ็นต์:
นำเข้า java.io.bufferedreader; นำเข้า java.io.ioexception; นำเข้า java.io.inputstream; นำเข้า java.io.inputStreamReader; นำเข้า java.io.OutputStream; นำเข้า Java.io.printwriter; นำเข้า Java.net.socket; java.util.logging.logger;/** * * @author whn6325689 */ไคลเอนต์คลาสสาธารณะ {// ไคลเอนต์สาธารณะคงที่สาธารณะคงที่หลัก (สตริง [] args) {ลอง {// 1 สร้างซ็อกเก็ตไคลเอนต์ระบุที่อยู่เซิร์ฟเวอร์และหมายเลขพอร์ต ซ็อกเก็ตซ็อกเก็ต = ซ็อกเก็ตใหม่ ("127.0.0.1", 8888); // 2 รับกระแสเอาต์พุตเพื่อส่งข้อมูลไปยังเซิร์ฟเวอร์ OutputStream OS = Socket.GetOutputStream (); // BYTE OUTPUT Stream // แปลงเป็นพิมพ์สตรีม PrintWriter PW = ใหม่ PrintWriter (OS); PW.Write ("ชื่อผู้ใช้: ผู้ดูแลระบบ; รับสตรีมอินพุตเพื่ออ่านข้อมูลการตอบสนองบนเซิร์ฟเวอร์อินพุตสตรีมคือ = socket.getInputStream (); bufferedreader br = bufferedreader ใหม่ (ใหม่ inputStreamReader (IS)); สตริงข้อมูล = null; ในขณะที่ (info = br.readline ()) ปิดทรัพยากร br.close (); is.close (); pw.close (); os.close (); socket.close ();} catch (ioexception ex) {logger.getLogger (client.class.getName ()). log (ระดับเรียกใช้คลาสฝั่งเซิร์ฟเวอร์ก่อนจากนั้นเรียกใช้คลาสไคลเอนต์:
ผลการส่งออกคลาสเซิร์ฟเวอร์:
== เซิร์ฟเวอร์กำลังจะเริ่มรอให้ไคลเอนต์เชื่อมต่อ == ฉันเป็นเซิร์ฟเวอร์ข้อมูลที่ส่งโดยไคลเอนต์คือ: ชื่อผู้ใช้: ผู้ดูแลระบบ; รหัสผ่าน: ผู้ดูแลระบบ
ผลลัพธ์ผลลัพธ์ของคลาสไคลเอนต์:
ฉันเป็นไคลเอนต์และข้อมูลที่ส่งคืนโดยเซิร์ฟเวอร์คือ: ยินดีต้อนรับ!
สรุป
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้เกี่ยวกับรหัสอินสแตนซ์การเขียนโปรแกรมของเซิร์ฟเวอร์การเขียนโปรแกรม Java Socket ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน เพื่อนที่สนใจสามารถอ้างถึงเว็บไซต์นี้ต่อไปได้:
ซ็อกเก็ตการเขียนโปรแกรม Java ใช้ลูกค้าหลายรายเพื่อเชื่อมต่อกับรหัสเซิร์ฟเวอร์เดียวกัน
รหัสตัวอย่างสำหรับการใช้งานการสื่อสารซ็อกเก็ตในการเขียนโปรแกรม Java MultithReaded
หากมีข้อบกพร่องใด ๆ โปรดฝากข้อความไว้เพื่อชี้ให้เห็น ขอบคุณเพื่อนที่ให้การสนับสนุนเว็บไซต์นี้!