जैसा कि मैं समझता हूं, बैकलॉगकनेक्शन कतार का आकार निर्धारित करता है। उस समय इस आकार से अधिक कोई अतिरिक्त अनुरोध बंद कर दिया जाएगा (यह स्टेटमेंट सही है ??)।सुनो() बैकलॉग मान को अनदेखा करें
अब मैं बहुत ही सरल कार्यक्रम server.c
socket()
bind()
listen(..., 5)
while(1)
{
accept()
read()
write()
sleep(3)
close()
}
अब मैं इस सर्वर से कनेक्ट करने के लिए एक समय पर 8 ग्राहकों शुरू की है,। हैरानी की बात है कि सर्वर सभी 8 क्लाइंट्स परोसता है लेकिन इसके बजाय इसे केवल 5 क्लाइंट कतारबद्ध करना चाहिए & शेष 3 क्लाइंट अनुरोधों को अस्वीकार कर दिया जाना चाहिए। एक अन्य दिलचस्प बात यह है कि अगर मैं इस बैकलॉग मान को 0 के रूप में रखता हूं, तो परिणाम अभी भी वही है। फिर मैंने सुनो() कॉल पर टिप्पणी करने की कोशिश की, इस सभी 8 क्लाइंट कनेक्शन अस्वीकार कर दिए गए।
क्या कोई इस पर कोई इनपुट प्रदान कर सकता है।
आप एक समवर्ती वातावरण में 'read',' write' और 'close' रखना चाहिए। आपके कोड में, जब अगला कनेक्शन 'स्वीकार' किया जाता है तो ऐसा लगता है कि पिछला वाला पहले ही बंद कर दिया गया है।कोड को थ्रेड में रखें और सुनिश्चित करें कि प्रत्येक कनेक्शन आपके सर्वर को अनुरोध करने के लिए स्थिति 8 क्लाइंट सुनिश्चित करने के लिए पर्याप्त समय तक पर्याप्त रूप से पर्याप्त होता है। –
मैं ** बैकलॉग ** का परीक्षण कर रहा था ** कभी-कभी वापस और कहीं भी नहीं मिला। अब जवाब देखने की उम्मीद है। – tuxuday
ओपी, क्या आप अपना नमूना कोड पोस्ट कर सकते हैं। ताकि लोग कॉपी/पेस्ट कर सकें और इसका परीक्षण कर सकें। – tuxuday