मुझे यूनिक्स में चयन फ़ंक्शन का उपयोग कर समस्या का सामना करना पड़ रहा है।क्या चयन सिस्टम कॉल के बीच fd_set को रीसेट करना आवश्यक है?
मेरे पास एक सर्वर है जो कनेक्शन के लिए इंतजार कर रहा है। सबसे पहले मैं FD_SET(listener, readfds)
का उपयोग कर fd_set readfds
पर सुनकर सॉकेट फ़ाइल डिस्क्रिप्टर listener
जोड़ता हूं और फिर मैं select()
में इसका उपयोग करता हूं।
जब मुझे कनेक्शन मिलता है, तो मैं accept()
पर कॉल करता हूं और स्वीकृत फ़ाइल डिस्क्रिप्टर के साथ चयन में readfds
सेट करता हूं और कनेक्शन से डेटा प्राप्त करना प्रारंभ करता हूं। हालांकि, जब मैं स्ट्रेस में कोड की जांच करता हूं, तो चयन readfds
में श्रोता को नहीं दिखाता है जबकि select()
दूसरी बार निष्पादित होता है।
मैं फिर से select()
फिर से कॉल करने से पहले FD_SET(listener, readfds)
का उपयोग कर श्रोता फ़ाइल वर्णनकर्ता निर्धारित करने की आवश्यकता है?
धन्यवाद।
यह भी नहीं कि लिनक्स पर टाइमआउट मान संशोधित किया जा सकता है और इसलिए इसे फिर से शुरू करने की आवश्यकता भी होगी। मानक यह अनुमति देता है लेकिन यूनिक्स के अन्य स्वादों में यह असामान्य है। –