मुझे अपने सॉकेट परीक्षण एप्लिकेशन के साथ एक दिलचस्प समस्या मिली है।आईफोन सॉकेट बड़ी संख्या में डेटा स्थानान्तरण के बाद विफल रहता है
मैंने एक AcceptCallback फ़ंक्शन के साथ एक सुनवाई सॉकेट स्थापित किया है।
CFStreamCreatePairWithSocketToHost(kCFAllocatorDefault,
(CFStringRef) self.clientService.hostName,
self.clientService.port,
&myReadStream,
&myWriteStream);
और मैं डेटा वापस सुन सॉकेट myReadStream और myWriteStream, जो दोनों के मैं उनके NSStream समकक्ष डाली गए हैं करने के लिए भेज दिया है: मैं का उपयोग कर सुन सॉकेट से कनेक्ट हैं।
समस्या डेटा के कई अलग-अलग पैकेट भेजने के बाद होती है। पैकेट का आकार कोई फर्क नहीं पड़ता, यह पैकेट की संख्या है (या CFStreamCreatePairWithSocketToHost creations की संख्या) जो त्रुटि को पेश करने लगता है।
बाद मैं पैकेट (शायद करीब 100 या 200) की टन भेजने के लिए, जब मैं NSOutputStream पर डेटा भेजने की कोशिश मैं NSStreamEvent कॉलबैक में कोई त्रुटि मिलती है:, तब
Operation could not be completed. (NSUnknownErrorDomain error 8.)
अगर मैं बनाने की कोशिश एक नई सेवा और इसे नेटवर्क पर प्रकाशित करें जब मैं नए पते को हल करने का प्रयास करता हूं तो मुझे एक त्रुटि मिलती है। यह मुझे NSNetService में 10 का त्रुटि कोड देता है: didNotResolve प्रतिनिधि विधि (भी, त्रुटि विवरण यहां खाली है)।
यह लगभग है जैसे सुनना सॉकेट "पूर्ण" है, लेकिन ऐसा लगता है कि यह ठीक काम कर रहा है क्योंकि जब मैं CFSocketIsValid की जांच करता हूं तो यह सच हो जाता है।
मैं स्टंप हो गया हूं और स्थिति को डीबग करने की कोशिश कर कई घंटे बिताए हैं ... कोई भी विचार किसी को भी? धन्यवाद।
आग में अधिक ईंधन जोड़ने के लिए, वास्तविक डिवाइस पर चलने वाले परिणामों को सूचीबद्ध करना उपयोगी होगा। नेटवर्किंग प्रदर्शन निश्चित रूप से भौतिक और नकली के बीच बदलता रहता है। –
हाँ, मैंने सत्यापित किया कि डिवाइस पर भी वही समस्या होती है। मुझे एक ही त्रुटि मिलती है। मैंने बस असफल होने से पहले किए जा रहे कनेक्शनों की संख्या में एक काउंटर जोड़ा, और यह 236 सफल कनेक्शन/स्थानान्तरण बनाता है। 237 वां हमेशा विफल रहता है। यह आश्चर्यजनक रूप से 255 के करीब है, जो मुझे लगता है कि यह सॉकेट बनाए रखने वाले कनेक्शन के साथ कुछ प्रकार की मेमोरी रिसाव हो सकती है। सुनिश्चित नहीं है ... – devinkb
अधिक सुराग: जब डिवाइस पर एप्लिकेशन चल रहा है तो 23 9 सफल स्थानान्तरण हैं। 240 वां हमेशा विफल रहता है। आईफोन पर सॉकेट और सिम्युलेटर पर सॉकेट के बीच क्या अंतर है? – devinkb