मैं सी में प्रॉक्सी सर्वर पर काम कर रहा हूं। मैं अलग-अलग जगहों पर फ्रेड और फाग्स के संयोजन का उपयोग करके अभी तक प्राप्त कर चुका हूं लेकिन अंतर को सुलझाना और समझना चाहता हूं। निम्नलिखित उदाहरण में, मैं उस स्थान पर फ़्रेड का उपयोग करने की कोशिश कर रहा हूं जिसे मैंने पहले सफलतापूर्वक fget का उपयोग किया था। इसके बजाय मेरा सर्वर अब फ्रेड लाइन पर लटकता है। क्या अंतर है और मेरा कार्यक्रम क्यों लटक रहा है?सॉकेट पर फ्रेड स्टॉल लेकिन fget नहीं करता है?
void HandleTCPClient(int clntSocket)
{
FILE *request = fdopen(clntSocket, "r");
char reader[2000];
size_t q; //typo before
while((q=fread(reader, 1, sizeof(reader), request))>0) { //hangs here!
printf("i read something!\n");
}
return;
}
धन्यवाद !!
संपादित करें: यदि ऐसा है तो मैं लाइन बनाने के "जबकि ((क्यू = fread (पाठक, 1, 1, अनुरोध))> 0) {"
मैं प्राप्त सभी अपनी स्क्रीन पर "मैं कुछ पढ़ा"। ..
यह सुनिश्चित नहीं है कि इसका क्या अर्थ है। तो क्या यह सही है कि अगर स्ट्रीम में कम से कम आपके बफर का आकार वर्ण मौजूद नहीं है तो क्या सचमुच कुछ भी नहीं करेगा?
size_t q; क्षमा करें .. –