แอปพลิเคชันเครือข่ายแบ่งออกเป็นสองส่วน: ไคลเอนต์และเซิร์ฟเวอร์และคลาสซ็อกเก็ตเป็นคลาส Java ที่รับผิดชอบในการจัดการการสื่อสารไคลเอนต์ ผ่านคลาสนี้คุณสามารถเชื่อมต่อกับเซิร์ฟเวอร์ด้วยชื่อ IP หรือชื่อโดเมนที่ระบุและคุณสามารถส่งและรับข้อมูลซึ่งกันและกันกับเซิร์ฟเวอร์
สำหรับคำอธิบายสั้น ๆ เกี่ยวกับการสื่อสารซ็อกเก็ตเซิร์ฟเวอร์จะเขียนบางอย่างลงในสตรีมเอาต์พุตซ็อกเก็ตและไคลเอนต์สามารถอ่านเนื้อหาที่เกี่ยวข้องผ่านสตรีมอินพุตซ็อกเก็ต ซ็อกเก็ตและซ็อกเก็ตเชื่อมต่อในสองทิศทางดังนั้นไคลเอนต์ยังสามารถเขียนสิ่งต่าง ๆ ลงในสตรีมเอาท์พุทซ็อกเก็ตที่สอดคล้องกันจากนั้นสตรีมอินพุตซ็อกเก็ตที่สอดคล้องกันของเซิร์ฟเวอร์สามารถอ่านเนื้อหาที่เกี่ยวข้องได้
ตัวอย่างที่ 1: วิธีการเขียนสั้น ๆ ของลูกค้า (i)
ซ็อกเก็ตไคลเอนต์ = null; ลอง {client = ซ็อกเก็ตใหม่ (IP, พอร์ต); สตริง msg = "ส่งเนื้อหาข้อมูล!"; // รับซ็อกเก็ตอ่านและเขียนสตรีมส่งข้อมูลไปยังไคลเอนต์โปรแกรมเซิร์ฟเวอร์ getOutputStream () เขียน (msg.getBytes ()); byte client.getInputStream (). อ่าน (data); system.out.println (สตริงใหม่ (data));} catch (ข้อยกเว้น e) {e.printstacktrace ();} ในที่สุด {ถ้า (ไคลเอนต์! = null) {ลอง {client.close (); ตัวอย่างที่ 2: วิธีการเขียนสั้น ๆ ของลูกค้า (2)
ลอง {client = socket new (); socketaddress socketaddress = ใหม่ inetsocketAddress (ip, พอร์ต); client.connect (socketaddress, 3000); String msg = "เซิร์ฟเวอร์ที่เข้าถึงได้ส่งคืนเนื้อหา!"; BYTE [2048]; // รับข้อมูลจากไคลเอนต์โปรแกรมเซิร์ฟเวอร์ GetInputStream (). อ่าน (data); System.out.println (สตริงใหม่ (data));} catch (Exception e) {e.printstacktrace ();} ในที่สุด {if (ไคลเอนต์! = null) {system.out.println ("Systemerr:" +e);}}} ตัวอย่างที่ 3: การเขียนลูกค้าให้เสร็จสมบูรณ์
ลอง {// 1 สร้างการเชื่อมต่อซ็อกเก็ตไคลเอนต์ระบุตำแหน่งเซิร์ฟเวอร์และพอร์ต ซ็อกเก็ตซ็อกเก็ต = ซ็อกเก็ตใหม่ (IP, พอร์ต); // 2. รับซ็อกเก็ตอ่านและเขียนสตรีม outputstream OS = socket.getOutputStream (); PrintWriter PW = New PrintWriter (OS); // อินพุตสตรีมอินพุทสตรีมคือ = socket.getInputStream (); bufferedReader br = bufferedReader ใหม่ (ใหม่ inputStreamReader (IS)); // 3. ใช้สตรีมเพื่ออ่านและเขียนซ็อกเก็ตตามสตริงการดำเนินการบางอย่าง SENDINFO = "ข้อมูลข้อมูลที่ส่งไปยังเซิร์ฟเวอร์!"; PW.WRITE (SENDINFO); pw.flush (); Socket.shutdownoutput (); // สตริงที่สอดคล้องกันของเซิร์ฟเวอร์ที่รับ ReplyInfo = null; ในขณะที่ (! (((ตอบกลับ INSPLOMINFO = br.readline ()) == null)) {system.out.println ("รับข้อมูลเซิร์ฟเวอร์:"+ReplyInfo); } // 4 ปิดทรัพยากร br.close (); is.close (); pw.close (); os.close (); Socket.close (); } catch (unknownhostexception e) {e.printstacktrace (); } catch (ioexception e) {e.printstacktrace (); -สำหรับข้อมูลเพิ่มเติมเกี่ยวกับความรู้ที่เกี่ยวข้องของโปรแกรมลูกค้าที่ส่งและรับข้อมูลใน Java Socket Communication (I) บรรณาธิการจะแนะนำให้คุณทราบ สำหรับข้อมูลเพิ่มเติมโปรดเข้าสู่เว็บไซต์ Wulin.com เพื่อเรียนรู้เพิ่มเติม!