การสร้างลิงค์ติดต่อสื่อสารแบบ TCP/IP ที่เป็น sockets เป็นการเชื่อมต่อแบบ connection-orientated
ซึ่งนั้นก็หมายความว่าการสนทนาระหว่างเครื่อง client กับ server จะทำการเชื่อมต่อตลอดเวลาที่สนทนานอกเสียจากมันจะเสีย ซึ่งการสนทนากันหรือการแลกเปลี่ยนข้อมูลระหว่าง client กับ server นั้นจะต้องเป็นไปตามกฎของ protocol ซึ่งจะการกำหนดลักษณะการทำงานนั้น ทำให้สามารถแบ่งขั้นตอนการทำงานของ server ได้ 5ขั้นตอน ดังนี้
1. สร้าง object ของ ?ServerSocket
ServerSocket constructor ต้องการค่า หมายเลข port ?(มีค่าตั้งแต่ 1024-65535 โดยไม่คิดรวมหมายเลข port สงวน ) เป็นค่า argument ตัวอย่างเช่น
ServerSocket servSock = new ServerSocket(1234);
จากตัวอย่างนี้จะทำให้ server ให้บริการ client ที่ทำการเชื่อมต่อมายัง port 1234
2. ทำให้ server อยู่ในสถานะพร้อมบริการ
Server จะอยู่ในสถานะที่รอให้บริการได้นั้นจะต้องมีการเรียกใช้ method accept ของ class ServerSocket ซึ่งจะreturn ค่าเป็น object ของ Socket class ตัวอย่างการใช้งานเช่น
Socket link = servSock.accept();
3. ตั้งค่า input และ output stream
methods getInputStream และ getOutputStream เป็น method ที่ class Socket ใช้สำหรับ อ่านค่าที่ได้จาก stream ในการเชื่อมต่อกันใน 2 ขั้นตอน ในการเชื่อมต่อสื่อสาร client ได้สร้าง connection เราสามารถใช้ Scanner object ในการอ่านค่าจาก InputStream object โดย return ค่าโดน method getInputStream โดยอยู่ในรูป string ? orientated input โดยถูกกำหนดจาก standard input stream,System.in
ตัวอย่างเช่น
Scanner input = new Scanner(link.getInputStream());
ลักษณะคล้ายกัน เราก็สามารถส่ง output โดยใช้ PrintWriter object ในการส่งค่า output ไปยัง OutputStream object โดยใช้ method ที่ชื่อว่า getOutputStream ?ซึ่งสามารถใช้ได้โดยการกำหนดค่า ใน constructor ของ PrintWriter โดยกำหนดค่า agument 2 ค่า
ตัวอย่าง
PrintWriter output = new PrintWriter(link.getOutputStream(),true);
4. ส่งและรับข้อมูล
หลังจากที่ทำการ set up Scanner และ PrintWrite ให้สามารถส่งและรับข้อมูลได้แล้วก็จะทำการรับและส่งข้อมูล โดยใช้ method nextLine สำหรับอ่านข้อมูลที่รับเข้ามา และใช้ method println สำหรับส่งข้อมูล
ตัวอย่างการใช้งาน
output.println(“Awaiting data…”);
String input = input.nextLine();
5. สุดท้ายเมื่อเสร็จสิ้นการเชื่อมต่อก็ต้องทำการปิดการเชื่อมต่อ