โปรแกรมจาวา UDPEchoClient

Posted on

หลังจากที่เขียนโปรแกรมจาวา Server UDP ที่ให้บริการตอบกลับข้อความแล้วต่อไปจะเขียนโปรแกรมฝั่ง client เพื่อที่จะได้ทำงานร่วมกับโปรแกรม Server ซึ่งขั้นตอนในการเขียนโปรแกรมจาวามีดังนี้ 1. สร้าง object DatagramSocket มันก็คล้ายกับโปรแกรม server ที่ต้องมี DatagramSocket ที่ค่อยเอาไว้รับและส่งข้อมูลที่เป็นแบบ Datagram ใช้คำสั่งโค้ดคือ

โปรแกรมจาวา UDPEchoServer

Posted on

ต่อไปจะเป็นตัวอย่างโปรแกรม UDP ที่เขียนด้วยภาษาจาวาซึ่งจะทำหน้าที่เป็น server โดยที่จะรับข้อความจาก client และตอบกลับไปยัง client ซึ่งโปรแกรมจะมีความแตกต่างกับโปรแกรมแบบ TCP ในโปรแกรมนี้จะต้องมีการดักจับความผิดพลาดคือ IOException ใน main แทนด้วย SocketException

Datagram (UDP) Sockets

Posted on

UDP แตกต่างจาก TCP/IP , datagram sockets เป็นแบบ connectionless. นั้นหมายความว่าการเชื่อมต่อระหว่าง client กับ server ไม่สนใจระยะเวลาการตอบโต้ ซึ่ง datagram packet จะส่งยังเดียวไม่สนใจว่าได้รับหรือไม่ UDP จะส่งข้อมูลได้เร็วกว่า TCP แต่มันไม่น่าเชื่อถือในการส่งและรับข้อมูล

Java TCPEchoClient

Posted on

ในบทความตอนที่แล้วเกี่ยวกับ TCPEchoServer ซึ่งจะแสดงข้อความตอบกลับมาเมื่อเราเข้าใช้บริการผ่านทาง telnet ในตอนนี้ก็จะเป็นการเขียนโปรแกรมฝั่ง client ที่จะทำหน้าที่คุยกับโปรแกรมฝั่ง server ของตอนที่แล้ว ซึ่งขั้นตอนของฝ่าย client ก็ไม่มีอะไรมาก ขั้นแรกก็ทำการสร้าง socket ไปยัง server และ port ของ server โดยที่นี้มีการประกาศตัวแปร

Java Echo Server

Posted on

Java Echo Server เป็นตัวอย่างง่ายๆ ที่ server จะรับข้อความจาก client และทำการเก็บและนับข้อความ หลังจากนั้นจะตอบข้อความกลับ โดยที่จะรับและแสดงข้อความตอบกลับไปเรื่อยๆจนกว่าจะพิมพ์ข้อความว่า protocol for this service is “***CLOSE***” ถึงจะทำการปิดการเชื่อมต่อ ในโปรแกรมนี้อาจมีข้อผิดพลาดในการรับและส่งข้อความดังนั้นจึงต้องมี try catch IOException เพื่อทำงานในกรณีที่ผิดพลาดหลังจากนั้นก็จะต้องมี final เพื่อที่ไม่ว่ากรณีใดก็ตามจะต้องปิดการเชื่อมต่อหลังทำงานเสร็จสิ้นเพื่อที่ จะได้ไม่ค้างการเชื่อมต่อไว้ ซึ่งในการเชื่อมต่อระหว่าง server กับ client จะเชื่อมต่อผ่าน socket และ server จะต้องทำงานซ้ำตลอดจึงต้องมี loop infinite เพื่อที่จะได้ให้บริการ client ตลอดเวลา โดยที่ทำการสร้าง method handleClient เพื่อจัดการให้บริการ client ที่เข้ามาใช้บริการ ดังโค้ดตัวอย่างบ้างส่วน

Java TCP Sockets

Posted on

การสร้างลิงค์ติดต่อสื่อสารแบบ TCP/IP ที่เป็น sockets เป็นการเชื่อมต่อแบบ connection-orientated ซึ่งนั้นก็หมายความว่าการสนทนาระหว่างเครื่อง client กับ server จะทำการเชื่อมต่อตลอดเวลาที่สนทนานอกเสียจากมันจะเสีย ซึ่งการสนทนากันหรือการแลกเปลี่ยนข้อมูลระหว่าง client กับ server นั้นจะต้องเป็นไปตามกฎของ protocol ซึ่งจะการกำหนดลักษณะการทำงานนั้น ทำให้สามารถแบ่งขั้นตอนการทำงานของ server ได้ 5ขั้นตอน ดังนี้

เขียนโปรแกรม Java หาไอพีของเครื่องตัวเอง

Posted on

ในการเขียนโปรแกรมครั้งนี้จะเป็นการใช้ method ของ Class InetAddress ที่ชื่อว่า getLocalHost() ซึ่งต้องทำการ import java.net.*; เข้ามาด้วยโดยที่หลังจากเรียกใช้แล้วจะคืนค่าเป็น address ip ของเราสามารถทำการโดยแสดงผลได้เลยโดยใช้ System.out.println ได้เลยแต่อย่าลืม try catch ด้วยนะครับ โดยใช้ Exeption ที่มีชื่อว่า UnknowHostException เพื่อไม่มี host ดังกล่าว โค้ดโปรแกรม

เริ่มต้นเขียน Java network Programming ด้วย Class InetAddress

Posted on

Class หนึ่งใน java.net ที่ชื่อว่า InetAddress ซึ่งสามารถจัดการ Internet addresses ทั้ง host names และ IP addresses. โดยใช้ Static method ที่มีชื่อว่า getByName ซึ่ง class จะไปถาม DNS (Domain Name System) ว่ามี ชื่อ host ที่ป้อนเข้าไปมีไอพีอะไร ซึ่งค่าที่ได้รับกลับมาจะอยู่ใน object InetAddress โดยแสดงเป็นหมายเลขไอพี โดยที่เราจะสามารถแสดงผลได้อย่างง่ายโดยใช้ method println ตั้งแต่ method getByName จะต้องมีการ throws ตรวจสอบความผิดพลาดที่อาจเกิดขึ้นได้โดยใช้ exception UnknownHostException ถ้า host name ดังกล่าวไม่มี ซึ่งก็จำเป็นที่จะต้องทำการ catch เพื่อแสดงข้อผิดพลาดนี้ โค้ดตัวอย่างการใช้

UDP

Posted on

Internet applications ส่วนใหญ่ใช้ ?TCP แต่ก็มีข้อเสียเพราะการตรวจสอบความถูกต้องของข้อมูลของ TCP นั้นทำให้เสียเวลาและประสิทธิภาพไป ซึ่งส่วนใหญ่จะสูญเสียไปกลับการยืนยันความถูกต้องและการส่งข้อมูลใหม่ทำให้ TCP มีความช้า มี applications มากมายต้องการส่งข้อมูลที่มีจำนวนมากที่ไม่ต้องการยืนยันความถูกต้องจึงทำให้ถ้าใช้ TCP จะทำให้เกิดการช้าในการส่งข้อมูลที่มีจำนวนมาก ซึ่งบาง application นั้นที่ให้บริการผ่าน TCP ที่ทำงานช้าแต่ถูกต้องไม่ได้ เช่น application จำพวก การส่งเสียงและวิดีโอเป็นต้น หรือการให้บริการพวก streaming ต่างๆเพราะถ้าให้บริการผ่าน TCP จะทำให้เกิดการช้าในการส่งข้อมูลทำให้เสียอารมณ์ในการรับชมและฟังได้

TCP (Transmission Control Protocol)

Posted on

ในโดยรวมของ modern computer networks internet จะมี ?packet-switched นั้นหมายความว่าความระหว่าง คอมพิวเตอร์บน Internet จะถูกแบ่งเป็น blocks ซึ่งข้อมูลเหล่านี้เรียกว่า packets ซึ่ง packet จะถูกส่งไปยังเส้นทางต่างๆที่แตกต่างกัน IP จะเป็นตัวที่เกี่ยวข้องกับเส้นทางการส่ง packet เหล่านี้บนอินเตอร์เน็ต โดยมีจุดกำหนดขึ้นในสมัยสงครามเย็นระหว่าง American กับสหภาพโซเวียต โดยมันถูกออกแบมาถ้าหากเกิดเหตุการณ์ว่าถ้าถูกข้าศึกทำลายจุดใดจุดหนึ่ง จุดอื่นๆก็ยังสามารถทำงานต่อไปได้ IP จะมีการตอบกลับเพื่อที่จะหาเส้นทางการส่งใหม่ และกำหนดเส้นทางได้อย่างมีประสิทธิภาพเพื่อให้แน่ใจว่า ข้อมูลจากผู้ส่งจะถูกส่งไปยังผู้รับแน่นอน ซึ่งจึงทำให้เกิดการคิดค้นและให้บริการ TCP (Transmission Control Protocol) เกิดขึ้น และจากความรู้ในการทำงานข้อ IP ว่าให้มีการเลือกเส้นทางการส่งใหม่นั้น TCP ก็ได้คิดค้นว่าให้มีการส่งข้อมูลให้ถูกต้อง ซึ่งทำให้ทั้ง IP และ TCP ทำงานร่วมกันเพื่อที่จะส่งข้อมูลได้ถูกต้องและแน่นอน