Archives: December 2009

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

No Comments

December 31, 2009 at 10:09 amCategory:JAVA

หลังจากที่เขียนโปรแกรมจาวา Server UDP ที่ให้บริการตอบกลับข้อความแล้วต่อไปจะเขียนโปรแกรมฝั่ง client เพื่อที่จะได้ทำงานร่วมกับโปรแกรม Server ซึ่งขั้นตอนในการเขียนโปรแกรมจาวามีดังนี้

1. สร้าง object DatagramSocket

มันก็คล้ายกับโปรแกรม server ที่ต้องมี DatagramSocket ที่ค่อยเอาไว้รับและส่งข้อมูลที่เป็นแบบ Datagram ใช้คำสั่งโค้ดคือ Read More…

Tags: , , , , , ,

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

No Comments

December 29, 2009 at 1:51 pmCategory:JAVA

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

ในโปรแกรมนี้จะต้องมีการดักจับความผิดพลาดคือ IOException ใน main แทนด้วย SocketException Read More…

Tags: , , , ,

Datagram (UDP) Sockets

No Comments

December 27, 2009 at 12:22 pmCategory:JAVA

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

Tags: , , , , , , , ,

Java TCPEchoClient

1 Comment

December 26, 2009 at 5:29 pmCategory:JAVA

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

Tags: , , , ,

Java Echo Server

No Comments

December 25, 2009 at 6:55 pmCategory:JAVA

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 ที่เข้ามาใช้บริการ ดังโค้ดตัวอย่างบ้างส่วน Read More…

Tags: , , , ,

Java TCP Sockets

No Comments

December 20, 2009 at 4:45 pmCategory:JAVA

http://ecx.images-amazon.com/images/I/51tkvoGC8jL._SL500_.jpg

การสร้างลิงค์ติดต่อสื่อสารแบบ TCP/IP ที่เป็น sockets เป็นการเชื่อมต่อแบบ connection-orientated

ซึ่งนั้นก็หมายความว่าการสนทนาระหว่างเครื่อง client กับ server จะทำการเชื่อมต่อตลอดเวลาที่สนทนานอกเสียจากมันจะเสีย ซึ่งการสนทนากันหรือการแลกเปลี่ยนข้อมูลระหว่าง client กับ server นั้นจะต้องเป็นไปตามกฎของ protocol ซึ่งจะการกำหนดลักษณะการทำงานนั้น ทำให้สามารถแบ่งขั้นตอนการทำงานของ server ได้ 5ขั้นตอน ดังนี้ Read More…

Tags: , , , , ,

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

No Comments

December 12, 2009 at 11:07 pmCategory:JAVA

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

Tags: , , , ,

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

No Comments

December 9, 2009 at 10:14 pmCategory:JAVA

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 เพื่อแสดงข้อผิดพลาดนี้
โค้ดตัวอย่างการใช้ Read More…

Tags: , , , , , ,

UDP

1 Comment

December 9, 2009 at 12:43 amCategory:ทั่วไป

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

Read More…

Tags: , , , , ,

TCP (Transmission Control Protocol)

No Comments

December 3, 2009 at 8:10 pmCategory:ทั่วไป

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

Tags: , , , , , , ,