ก่อนอื่นมีปัญหากับการใช้ทั้ง UDP และ TCP บนเซิร์ฟเวอร์เดียวกันหรือไม่?
ประการที่สองฉันสามารถใช้หมายเลขพอร์ตเดียวกันได้หรือไม่?
ก่อนอื่นมีปัญหากับการใช้ทั้ง UDP และ TCP บนเซิร์ฟเวอร์เดียวกันหรือไม่?
ประการที่สองฉันสามารถใช้หมายเลขพอร์ตเดียวกันได้หรือไม่?
คำตอบ:
ได้คุณสามารถใช้หมายเลขพอร์ตเดียวกันสำหรับทั้ง TCP และ UDP หลายโปรโตคอลทำสิ่งนี้อยู่แล้วเช่น DNS ทำงานบน udp / 53 และ tcp / 53
สระว่ายน้ำในทางเทคนิคพอร์ตสำหรับแต่ละโปรโตคอลมีความเป็นอิสระอย่างสมบูรณ์ แต่สำหรับโปรโตคอลระดับสูงที่สามารถใช้ทั้ง TCP หรือ UDP ก็ประชุมว่าพวกเขาเริ่มต้นกับพอร์ตเดียวกันจำนวน
เมื่อเขียนเซิร์ฟเวอร์ของคุณจำไว้ว่าลำดับของเหตุการณ์สำหรับซ็อกเก็ต TCP คือมากยิ่งกว่าสำหรับซ็อกเก็ต UDP ตั้งแต่เช่นเดียวกับปกติsocket
และbind
สายที่คุณยังต้องและlisten
accept
นอกจากนี้ที่accept
โทรจะกลับซ็อกเก็ตใหม่และเป็นที่ซ็อกเก็ตที่แล้วคุณจะต้องยังสำรวจความคิดเห็นสำหรับรับเหตุการณ์ เซิร์ฟเวอร์ของคุณควรเตรียมพร้อมที่จะดำเนินaccept
การเชื่อมต่อบนซ็อกเก็ตเดิมในขณะที่ให้บริการไคลเอนต์หลายรายพร้อมกันซึ่งแต่ละเซิร์ฟเวอร์จะเรียกใช้เหตุการณ์การรับบนซ็อกเก็ตของตนเอง
ประการแรกไม่มีปัญหาในการใช้ทั้ง tcp และ udp บนเซิร์ฟเวอร์
ประการที่สองเราสามารถมีทั้งคำขอ UDP และ TCP บนพอร์ตเดียวกันได้เนื่องจากแต่ละคำขอถูกระบุโดย quintuple ที่มี IP ต้นทาง, IP ปลายทาง, พอร์ตต้นทาง, พอร์ตปลายทาง, PROTOCOL (เนื่องจากโปรโตคอลสามารถเป็น TCP หรือ UDP)