मेरे पास एक ऐसा एप्लिकेशन है जिसे किसी सर्वर पर कुछ समय में कुछ डेटा भेजने की आवश्यकता होती है। कनेक्शन को बंद करना आसान तरीका होगा और फिर जब मैं कुछ भेजना चाहता हूं तो इसे फिर से खोलें। लेकिन मैं कनेक्शन खुला रखने के लिए तो जब मैं डेटा भेजने के लिए चाहते हैं, मैं पहली बार कनेक्शन इस समारोह का उपयोग कर जाँच करना चाहते हैं:जांचें कि सॉकेट कनेक्ट है या नहीं
bool is_connected(int sock)
{
unsigned char buf;
int err = recv(sock,&buf,1,MSG_PEEK);
return err == -1 ? false : true;
}
बुरा बात यह है कि यह काम नहीं करता है। जब कोई डेटा प्राप्त नहीं होता है तो यह लटकता है। मैं क्या कर सकता हूँ? मैं जांच कैसे कर सकता हूं कि कनेक्शन अभी भी खुला है या नहीं?
http://stackoverflow.com/questions/4142012/how-to-find-the-socket-connection-state-in-c – BoBTFish