Skip to main content

ซ็อกเก็ต C คืออะไร?

ซ็อกเก็ต C เป็นคำที่บางครั้งใช้เพื่ออ้างถึงกระบวนการเขียนรหัสซ็อกเก็ตในภาษาการเขียนโปรแกรม C และบางครั้งใช้เพื่ออ้างถึงไฟล์ไลบรารีจริงที่ถือการใช้งานสำหรับฟังก์ชั่นซ็อกเก็ตบางอย่างไฟล์ไลบรารีซ็อกเก็ต C ที่แท้จริงมีการใช้งานสำหรับฟังก์ชั่นที่แตกต่างกันและมาโครที่ให้ฟังก์ชันการใช้งานซ็อกเก็ตพื้นฐานที่จัดทำโดยไลบรารีภาษาแม้ว่าไฟล์ซ็อกเก็ต C จะขึ้นอยู่กับระบบปฏิบัติการและอาจไม่ถูกนำไปใช้ในบางระบบการเขียนรหัสซ็อกเก็ต C เกี่ยวข้องกับการสร้างอินเทอร์เฟซด้วยโปรโตคอลอินพุตและเอาต์พุตมาตรฐานที่รู้จักกันในชื่อซ็อกเก็ตและใช้เพื่อส่งหรือรับข้อมูลโดยปกติผ่านเครือข่ายหรือผ่านชิ้นส่วนของฮาร์ดแวร์ภาษาการเขียนโปรแกรม C มีวัตถุประสงค์เพื่อพกพา แต่การเขียนโปรแกรมซ็อกเก็ตขึ้นอยู่กับฟังก์ชั่นเฉพาะของระบบระดับต่ำดังนั้นบางครั้งอาจเป็นเรื่องยากที่จะเขียนโปรแกรมใน C ที่ใช้ซ็อกเก็ต แต่ยังรักษาความสามารถในการพกพาข้ามระบบ

ซ็อกเก็ตประเภทพื้นฐานที่ซ็อกเก็ต C รองรับครั้งแรกเป็นที่รู้จักกันในชื่อดาต้าแกรมที่สองคือสตรีมและที่สามคือการเข้าถึงแบบดิบDataGram เป็นประเภทของซ็อกเก็ตที่ส่งข้อมูลในชุดเล็ก ๆ ที่รู้จักกันในชื่อแพ็คเก็ตแต่ละแพ็คเก็ตจะถูกส่งจากแหล่งข้อมูลพร้อมข้อมูลเกี่ยวกับซ็อกเก็ตปลายทางที่กำลังมองหาข้ามเครือข่ายในขณะที่ดาต้าแกรมสามารถเป็นวิธีการสื่อสารที่มีประสิทธิภาพผ่านซ็อกเก็ตและมักจะใช้ส่งอีเมล แต่ก็สูญเสียไปเนื่องจากไม่มีแพ็กเก็ตที่ส่งมารับประกันว่าจะมาถึงซ็อกเก็ตปลายทาง

ซ็อกเก็ตสตรีมซ็อกเก็ตและข้อมูลจะถูกส่งผ่านโดยตรงระหว่างซ็อกเก็ตเมื่อใช้ในการเขียนโปรแกรมซ็อกเก็ต C ซ็อกเก็ตประเภทนี้ทำให้มั่นใจได้ว่าข้อมูลทั้งหมดที่ส่งมาจะได้รับในอีกด้านหนึ่งอย่างไรก็ตามภาวะแทรกซ้อนหนึ่งคือซ็อกเก็ตบางครั้งสามารถใช้การบล็อกซึ่งหมายความว่าซ็อกเก็ตจะหยุดการดำเนินการของกระบวนการจนกว่าจะได้รับข้อมูลหรือจนกว่าซ็อกเก็ตจะปิดแม้ว่าการใช้เธรดหรือกระบวนการที่แยกออกมาสามารถแก้ไขปัญหานี้ได้ในกรณีส่วนใหญ่การเข้าถึงซ็อกเก็ตแบบดิบนั้นเป็นวิธีการเชื่อมต่อกับระดับฮาร์ดแวร์เกือบทั้งหมดกับอุปกรณ์ใดก็ตามที่เป็นโฮสต์ซ็อกเก็ต

ซ็อกเก็ตทั่วไปจะใช้ในรูปแบบต่าง ๆ สำหรับการสื่อสารทางอินเทอร์เน็ตฮาร์ดแวร์และไดรเวอร์ที่อนุญาตให้เครือข่ายเกิดขึ้นแตกต่างกันอย่างมากโดยระบบปฏิบัติการดังนั้นจึงเป็นเรื่องยากที่จะค้นหาไฟล์ไลบรารีซ็อกเก็ต C ที่รองรับชุดค่าผสมที่เป็นไปได้ทั้งหมดด้วยเหตุผลนี้ไฟล์ซ็อกเก็ต C เองรวมถึงไฟล์ส่วนหัวซ็อกเก็ตมักจะมีรายการคำสั่งการรวบรวมแบบมีเงื่อนไขยาวดังนั้นจึงจะรวบรวมแตกต่างกันในระบบต่างๆ