मैंने लिनक्स में दो जोड़ी कोड (server.c
और client.c
) लिखा है। इंटरनेट-डोमेन AF_INET
के लिए यूनिक्स-डोमेन AF_UNIX
अन्य के लिए एक। दोनों ठीक काम कर रहे हैं!सी में सॉकेट प्रोग्रामिंग में कतार लंबाई() क्यू लंबाई?
listen()
बैकलॉग कतार की लंबाई के लिए बुलाया = 3both servers
listen(sockfd, 3);
यूनिक्स डोमेन में (AF_UNIX) में किया जाता है: एक ग्राहक सर्वर के साथ जुड़ा हुआ है है, अगर मैं सर्वर से अधिक ग्राहकों कनेक्ट करने का प्रयास । तीन कतार में रखा जाता है, और चौथे अनुरोध का अस्वीकार कर दिया जाता है। (जैसा कि मैंने वांछित - 3 प्रतीक्षा कतार में)।
इंटरनेट डोमेन (AF_INET) में: लंबित कतार में तीन से अधिक का अनुरोध रखा जाता है।
चौथे ग्राहक से अनुरोध क्यों अस्वीकार नहीं किया गया है, भले ही बैकलॉग कतार की लंबाई तीन हो? और listen()
(और अन्य) प्रोटोकॉल का व्यवहार क्यों निर्भर है?
मैं वास्तव में आपके इरादे को समझ नहीं पा रहा हूं ... कतार पूर्ण होने के कारण आप कभी क्लाइंट को क्यों अस्वीकार करना चाहेंगे? –
@ करोलि हॉर्वथ: मेरा मतलब है कि अगर मुझे प्रतीक्षा कतार की लंबाई दी गई तो इसे खारिज कर दिया जाना चाहिए। और मैं इसके बारे में जानना चाहता हूं। –
@ गृजेश चौहान: सैद्धांतिक रूप से ... हाँ .. * व्यावहारिक रूप से * .. कौन परवाह करता है? यह आपको परेशान क्यों करता है? –