ตัวอย่างของบทความนี้อธิบายสั้น ๆ เกี่ยวกับวิธีการใช้งานการสื่อสารซ็อกเก็ตใน Android เนื้อหาเฉพาะมีดังนี้:
1. ภาพรวมของการสื่อสารซ็อกเก็ต
ซ็อกเก็ตถือเป็นรากฐานสำคัญของการสื่อสารและเป็นหน่วยปฏิบัติการพื้นฐานของการสื่อสารเครือข่ายที่รองรับโปรโตคอล TCP/IP มันเป็นการนำเสนอเชิงนามธรรมของจุดสิ้นสุดในกระบวนการสื่อสารเครือข่ายและมีข้อมูลห้าประเภทที่จำเป็นสำหรับการสื่อสารเครือข่าย: โปรโตคอลที่ใช้สำหรับการเชื่อมต่อ, ที่อยู่ IP ของโฮสต์ท้องถิ่น, พอร์ตโปรโตคอลของกระบวนการท้องถิ่น, ที่อยู่ IP ของ โฮสต์ระยะไกลและโปรโตคอลของกระบวนการระยะไกล
เมื่อเลเยอร์แอปพลิเคชันสื่อสารข้อมูลผ่านเลเยอร์การขนส่ง TCP จะประสบปัญหาในการให้บริการพร้อมกันกับกระบวนการแอปพลิเคชันหลายรายการในเวลาเดียวกัน การเชื่อมต่อ TCP หลายรายการหรือกระบวนการแอปพลิเคชันหลายรายการอาจจำเป็นต้องส่งข้อมูลผ่านพอร์ตโปรโตคอล TCP เดียวกัน เพื่อแยกความแตกต่างระหว่างกระบวนการแอปพลิเคชันและการเชื่อมต่อที่แตกต่างกัน ระบบปฏิบัติการคอมพิวเตอร์จำนวนมากจัดให้มีอินเทอร์เฟซซ็อกเก็ต (Socket) เพื่อให้แอปพลิเคชันโต้ตอบกับโปรโตคอล TCP/IP เลเยอร์แอปพลิเคชันสามารถใช้อินเทอร์เฟซซ็อกเก็ตกับเลเยอร์การขนส่งเพื่อแยกการสื่อสารจากกระบวนการแอปพลิเคชันที่แตกต่างกันหรือการเชื่อมต่อเครือข่ายเพื่อใช้บริการการส่งข้อมูลพร้อมกัน
กล่าวอีกนัยหนึ่ง ซ็อกเก็ตเป็นการห่อหุ้มโปรโตคอล TCP/IP
2. ขั้นตอนการใช้ Socket (ไคลเอนต์):
1. สร้างการเชื่อมต่อซ็อกเก็ต (Tcp)
มันค่อนข้างง่ายที่จะสร้างการเชื่อมต่อซ็อกเก็ตใน Java ซึ่งสามารถทำได้โดยใช้คลาส Socket ที่ได้รับจากไลบรารีคลาส
Socketclient=null; // ระบุไคลเอ็นต์ไคลเอ็นต์ = newSocket ("localhost",5000);
2. ส่งข้อมูล
PrintStreamout=newPrintStream(socket.getOutputStream()); //PrintStream เป็นวิธีที่สะดวกที่สุดในการส่งข้อมูล
3. รับข้อมูลการคืนสินค้า
buf=newBufferedReader(newInputStreamReader(socket.getInputStream())); // ทำการรับสัญญาณแบบครั้งเดียวให้เสร็จสิ้นและอ่านอินพุตสตรีมของซ็อกเก็ต และอ่านข้อมูลที่ส่งคืนในนั้น
4. ปิดซ็อกเก็ต
ซ็อกเก็ต.ปิด();
3. อาหารเสริม:
ด้าน Socketsever (การใช้งานที่ไม่ใช่แบบหลายเธรด) ServerSocketserver = null; // กำหนดคลาส ServerSocket = null; // ระบุไคลเอ็นต์ PrintStreamout = null; // เอาต์พุตสตรีมการพิมพ์คือเซิร์ฟเวอร์ที่สะดวกที่สุด = newServerSocket (8888); อยู่ที่พอร์ต 8888 Listen บน System.out.println("เซิร์ฟเวอร์กำลังทำงานและกำลังรอให้ไคลเอ็นต์เชื่อมต่อ"); client=server.accept(); //รับการเชื่อมต่อ โปรแกรมเข้าสู่สถานะการบล็อก Stringstr="helloworld"; //ระบุข้อมูลที่จะส่งออก = newPrintStream(client.getOutputStream());out.println(str); //ส่งออกข้อมูลไปยัง ไคลเอนต์ ไคลเอ็นต์.ปิด();server.close();