भेज रहा है मैं एक एम्बेडेड लिनक्स वातावरण में काम कर रहा हूं।टेलनेट क्लाइंट कनेक्शन डेटा प्राप्त करना बंद कर देता है, सर्वर अभी भी
यह स्टार्टअप पर एक टेलनेट डिमन लॉन्च करता है जो किसी विशेष पोर्ट पर देखता है और कनेक्शन प्राप्त होने पर एक प्रोग्राम लॉन्च करता है।
अर्थात
telnetd -l /usr/local/bin/PROGA -p 1234
PROGA - इच्छा उत्पादन अनियमित अंतराल पर कुछ डेटा। जब यह डेटा आउटपुट नहीं कर रहा है, तो प्रत्येक एक्स अवधि के समय यह ग्राहक को यह जानने के लिए 'दिल की धड़कन' प्रकार की स्ट्रिंग भेजता है कि हम अभी भी सक्रिय हैं यानी "दिल की धड़कन \ r \ n"
यादृच्छिक समय के बाद, ग्राहक (द्वारा शुरू टेलनेट का एक लिनक्स संस्करण, का उपयोग करें: telnet xxx.xxx.xxx.xxx 1234)
असफल हो जायेगी प्राप्त करने के लिए 'दिल की धड़कन \ r \ n'
डेटा ग्राहक देखता है:
heartbeat
heartbeat
heartbeat
...
heartbeat
[nothing, should have received heartbeat]
[nothing forever]
दिल की धड़कन भेज दिया जाता है:
result = printf("%s", heartbeat);
जांच परिणाम, यह हमेशा heartbeat
की लंबाई है। syslog में प्रवेश हो रहा है हमें पता चलता है कि printf()
उचित अंतराल
मैं के बाद से एक tcdrain और fflush जो दोनों लौट सफलता में जोड़ दिया है पर सफलता के साथ निष्पादित हो रहा है, लेकिन स्थिति में मदद करने के नहीं है।
किसी भी मदद की सराहना की जाएगी।
** UDPATE: सर्वर पक्ष से एक वायरशर्क कैप्चर मिला। बहुत स्पष्ट रूप से दिल की धड़कन लगातार भेजा जा रहा है। कोई हिचकिचाहट नहीं, कोई देरी नहीं है। हालांकि ग्राहक पर कुछ दिलचस्प पाया। इस टेस्ट केस में क्लाइंट (उबंटू 9.04 पर टेलनेट) अचानक दिल की धड़कन (जैसे ऊपर वर्णित) प्राप्त करना बंद कर देता है। Wireshark यह पुष्टि करता है, पैकेट में बड़ा विराम। खैर, एक बार जब ग्राहक दिल की धड़कन प्राप्त करना बंद कर देता था, तो किसी भी कीस्ट्रोक (क्लाइंट पर) दबाकर क्लाइंट के बफर (सभी दिल की धड़कन) से डेटा का एक स्पू ट्रिगर होता है। क्लाइंट पर वायर्सहार्क भी एक पैकेट में इस विशाल मात्रा में डेटा दिखाता है।
दुर्भाग्य से मुझे वास्तव में यह नहीं पता कि इसका क्या अर्थ है। यह एक लाइन मोड चालू/बंद चीज है? लाइन अंत (\ r \ n) बहुत स्पष्ट रूप से आ रहे हैं।
** अपडेट 2: टेलनेट के बजाए नेटकैट चलाना, समस्या पुन: उत्पन्न नहीं होती है।
आपके द्वारा भेजे जाने वाले अन्य तारों की तरह क्या दिखता है? यदि आप 255 बाइट भेजते हैं तो इसे बचने की जरूरत है ... – Spudd86
मुझे नहीं लगता कि अन्य तार प्रासंगिक हैं, क्योंकि इस बग/समस्या को फिर से 'दिल की धड़कन' स्ट्रिंग भेजकर पुन: उत्पन्न किया जा सकता है – Tree77