| หน้าแรก | ส่วนบริการลูกค้า | ข่าวประกาศ | คลังความรู้ | ติดตามความคืบหน้า | ดาวน์โหลด |
คลังความรู้
คุณอยู่ที่หน้า: หน้าแรก > คลังความรู้ > How To > UDP: User Datagram Protocol
UDP: User Datagram Protocol
|
UDP: User Datagram Protocol
User Datagram Protocol (UDP) เป็นวิธีการสื่อสารหรือโปรโตคอลที่จำกัดจำนวนการบริการ เมื่อข่าวสารมีการแลกเปลี่ยน ระหว่างคอมพิวเตอร์ในเครือข่ายที่ใช้ Internet Protocol (IP) โดย UDP เป็นตัวเลือกหนึ่งของ Transmission Control Protocol (TCP) และใช้ร่วมกับ IP บางครั้งเรียกว่า UDP/IP ซึ่ง UDP เหมือนกับ TCP ในการใช้ IP ในการดึงหน่วยข้อมูล (เรียกว่า datagram) จากคอมพิวเตอร์หนึ่งไปยังอีกเครื่องหนึ่ง
แต่ต่างจาก TCP โดย UDP ไม่ให้การบริการสำหรับการแบ่งข่าวสารเป็นแพ็คเกต (datagram) และประกอบขึ้นใหม่เมื่อถึงปลายหนึ่ง UDP ไม่ให้ชุดของแพ็คเกตที่ข้อมูลมาถึง หมายความว่า โปรแกรมประยุกต์ที่ใช้ UDP ต้องมีความสามารถในการสร้างมั่นใจว่าข่าวสารที่มาถึงอยู่ในลำดับที่ถูกต้อง การประยุกต์เครือข่ายที่ต้องการประหยัดเวลาในการประมวลผล เพราะมีหน่วยข้อมูลในการแลกเปลี่ยน (ดังนั้น จึงมีข่าวสารน้อยมากในการประกอบขึ้นใหม่) จะชอบ UDP มากกว่า TCP ซึ่ง Trivial File Transfer Protocol (TFTP) ใช้ UDP แทนที่ TCP
UDP ให้ 2 บริการที่ไม่มีใน TCP โดยเลเยอร์ของ IP คือ Port number เพื่อช่วยแยกแยะการขอของผู้ใช้ และความสามารถ checksum เพื่อตรวจสอบการมาถึงข้อมูล ในแบบจำลองการสื่อสาร Open System Interconnection (OSI) UDP เหมือนกับ TCP คือ อยู่ที่เลเยอร์ 4 Transport Layer
ตัวอย่างโปรแกรมที่ใช้ UDP UDP เป็นการส่งข้อมูลที่ไม่มีการยืนยันการรับส่งข้อมูล คือผู้ส่งไม่สามารถรู้ได้ว่าข้อมูลได้ถึงผู้รับแล้วหรือไม่ มาถึงตรงนี้ คงเกิดคำถามขึ้นมากันบ้างแล้วนะครับ UDP มันมีข้อเสียอย่างนี้ แล้วจะใช้ได้เร้อ.... ผมต้องบอกเลย ว่าได้ฮะ ใช้ได้แน่ๆ แต่เราจะต้องเขียนการตรวจสอบข้อมูลเอาเอง เช่น ถ้าผมส่งข้อมูลไป ถ้าฝั่งที่รับข้อมูลได้รับข้อมูลแล้ว ก็ให้ตอบกลับมาให้ผม ผมก็ทราบแล้วว่าข้อมูลไปถึง แต่ถ้าไม่มีการตอบกลับภายในระยะเวลาที่ผมกำหนด ก็ให้แจ้งว่าผู้รับไม่ได้รับข้อความ ข้อดีของ UDP ที่เห็นกันได้ชัดเจนคือ มันจะส่งข้อมูลได้เร็วกว่า แบบ TCP และจะไม่มีการสร้าง Connection เกิดขึ้น ทำให้ข้อมูลที่วิ่งในเครือข่ายมีน้อยลงด้วย อ๊ะ เกริ่นมาพอสมควรกันแล้วนะครับ งานนี้มาเริ่มสร้างโปรแกรม Client / Server เพื่อแสดงการรับส่งข้อมูลโดยใช้ UDP กันเลยครับ 1. เปิดโปรแกรม Microsoft Visual Basic ทำการเลือกสร้างโปรเจ็คแบบ Standard EXE 2. ทำการเพิ่ม คอนโทรล MS Winsock เข้ามาในโปรเจ็ค โดยเลือกที่ Project->Components แล้วทำการคลิกเลือก Microsoft Winsock 6.0 ดังรูป
3.ทำการเลือกคอลโทรลต่างๆ แล้ววางตำแหน่งดังรูป
4.ทำการหนด Property ต่างๆ ดังนี้
5. ทำการคัดลอกโค้ดนำไปใส่ในส่วน View Code
6. เมื่อเสร็จแล้ว ก็ทดลอง Run โปรแกรมกันเลยครับ ทดลองพิมพ์ข้อความแล้วกด Send ดูนะครับ
อธิบายโปรแกรม การทำงานของโปรแกรมจะเริ่มจากส่วนของ Winsock1 ที่ทำหน้าที่เป็น Server ทำการ Bind เพื่อรอคอยรับข้อมูลจากผู้ส่ง ตรงหมายเลขพอร์ท 6543 และ หมายเลข IP ของเครื่อง Server (Winsock1.LocalIP) และ เมื่อ Server ได้รับข้อมูลที่ส่งมา คือจะเกิด Event Winsock1_DataArrival ขึ้น ผมก็จะรับข้อมูลที่ส่งมาโดยใช้ Methode GetData ของ Winsock เพื่อนำข้อมูลขึ้นมาแสดงที่คอนโทรล Text1 ส่วนการทำงานของฝั่ง Client จะทำการกำหนดชื่อ Host และ หมายเลขพอร์ท ที่เป็นปลายทาง แล้วทำการส่งข้อมูลที่อยู่ในคอนโทรล Text3 ออกไป ตอนนี้ผมอยากให้สังเกตุที่คำสั่งในการกำหนด Host ปลายทาง คือ Winsock2.RemoteHost = Winsock2.LocalIP จะเห็นได้ว่าผมกำหนดให้ Winsock2 ทำการส่งข้อมูลที่ LocalIP (ก็คือ ip ของเครื่องตัวเอง) เพื่อเป็นการแสดงบนเครื่องๆนี้ เท่านั้น ***หากต้องการส่งไปยังเครื่องอื่น ที่ Run โปรแกรมนี้เช่นกัน แค่เพียงเปลี่ยนจาก Winsock2LocalIP ไปเป็น หมายเลข IP ของเครื่องที่ต้องการติดต่อ ก็ส่งข้อมูลได้แล้วครับ
ปิดท้าย จะเห็นได้ว่าโปรแกรมตัวอย่างผมจะแสดงไว้ในหน้าต่างเดียวกันเลย ก็เพื่อลดขั้นตอนในการอธิบายลงครับ เอาเฉพาะแนวทาง ที่คุณจำเป็นจะต้องต่อยอด ด้วยตัวเองครับ หวังว่าตัวอย่างโปรแกรมที่ผมได้นำมาเสนอครั้งนี้ อาจจุดประกาย การสร้างสรรค์โปรแกรม ในตัวคุณขึ้นมาบ้างนะครับ แล้วพบกันใหม่ กับ 9'M :-P
|
Powered by WHMCompleteSolution