यूनिक्स सॉकेट्स एक द्विदिश सॉकेट हैं - सिर्फ एक आईपी आधारित सॉकेट की तरह, जिससे आप शायद परिचित हैं, और एक पाइप के समान, जिसके बारे में आप शायद परिचित हैं।
उनके पास दिलचस्प गुणों का एक छोटा समूह है:
- वे केवल "स्थानीय होस्ट" के डोमेन में हैं - आप केवल स्थानीय मशीन पर, नेटवर्क पर उन्हें एक्सेस नहीं कर सकते।
- आप उन्हें "स्ट्रीम" मोड में बना सकते हैं, जहां वे बस बाइट्स की धारा के रूप में पाइप की तरह डेटा पास करते हैं।
- आप उन्हें "डेटाग्राम" मोड में बना सकते हैं, जहां वे भेजने के संचालन के बीच की सीमाओं को बनाए रखते हैं। यह आपको बाइट स्ट्रीम के शीर्ष पर अपने स्वयं के फ़्रेमिंग प्रोटोकॉल के निर्माण के बिना फ़्रेमिंग को बनाए रखने की अनुमति देता है।
- वे फाइल सिस्टम का उपयोग करते हैं, या लिनक्स पर, "सार नाम", उनके "पते" के रूप में
- आप अपने ओएस पर निर्भर करते हुए, दूसरे छोर को अलग करने में सक्षम हो सकते हैं, कनेक्टिंग सॉफ़्टवेयर की सुरक्षित रूप से पहचान कर सकते हैं या सॉकेट पर फ़ाइल हैंडल पास कर सकते हैं।
अनिवार्य रूप से, वे किसी भी अन्य सॉकेट के बराबर हैं - उनके पास पाइप की तुलना में थोड़ा अधिक दिलचस्प गुण हैं, लेकिन अन्यथा मौलिक रूप से भिन्न नहीं हैं। वे आम तौर पर एक पाइप से अधिक IPC विलंबता, और अक्सर बड़े बफ़र करते हैं - हालांकि आप इसे ट्यून करने में सक्षम हो सकते हैं, और यह प्लेटफ़ॉर्म पर निर्भर करता है।
याद रखने वाली अंतिम दिलचस्प संपत्ति यह है कि वे फाइल सिस्टम को अपने नेमस्पेस के रूप में उपयोग करते हैं - इसलिए एक अनाम पाइप के बजाय एक नामित पाइप की तरह हैं, उस सॉफ़्टवेयर में पिछले संबंध के साथ संवाद नहीं कर सकते हैं। (सार नेमस्पेस सॉकेट समान हैं, लेकिन "फ़ाइल" पथ मौजूद नहीं है।)
इससे गहरा कुछ भी नहीं है - उनके पास कोई सुपर-सीक्रेट छिपी हुई संपत्ति नहीं है जो उन्हें एक विशिष्ट पाइप, या एक टीसीपी कनेक्शन से स्थानीय रूप से अलग बनाती है।