मुझे लिनक्स में सॉकेट के काम को समझने में कुछ समस्याएं हैं।गैर अवरोधक सॉकेट पर टाइमआउट भेजने के लिए कैसे संभव है?
setsockopt(sockfd, SOL_SOCKET, SO_SNDTIMEO, &timeout, sizeof(int));
write = write(sockfd, buf, len);
उपरोक्त कोड में के रूप में लेखन बफ़र कर रहे हैं, समय समाप्ति भेजने के लिए (जब उपयोगकर्ता अंतरिक्ष बफर गिरी बफ़र्स में बनाई लिखने सिस्टम कॉल तुरंत वापस आ जाएगी) नहीं है कोई मतलब। बफर आकार भेजें अधिक महत्वपूर्ण पैरामीटर है, लेकिन टाइमआउट भेजता है ऐसा लगता है कि यह कुछ भी बेकार नहीं है। लेकिन मैं निश्चित रूप से गलत हूं, क्योंकि मैंने बहुत सारे कोड देखे हैं जो SO_SNDTIMEO का उपयोग करते हैं। SO_SNDTIMEO का उपयोग कर उपयोगकर्ता स्पेस कोड टाइमआउट कैसे हो सकता है यह मानते हुए कि रिसीवर बहुत धीमा है?
क्या आप स्पष्ट कर सकते हैं कि आप किस परिणाम को प्राप्त करने का प्रयास कर रहे हैं? –
कोई परिणाम नहीं है कि मैं हासिल करने की कोशिश कर रहा हूं, मैंने इस सवाल से सॉकेट के काम को समझने के लिए कहा है और विशेष रूप से SO_SNDTIMEO क्यों मौजूद है? – 0xhacker
यह उत्तर आपको SO_SNDTIMEO समझने में मदद कर सकता है: http://stackoverflow.com/a/4182564/10682 –