मैं वर्तमान में एक परियोजना के लिए बेवकूफ नेटवर्क कोड लिख रहा हूं और एक साथी ने मुझे इस संभावना पर संकेत दिया कि जब मैं सर्वर से जानकारी को एक पुनरावृत्ति फैशन में सभी ग्राहकों को भेजता हूं तो मुझे तीव्र अंतराल मिल सकता है जब इनमें से एक ग्राहक ठीक से प्रतिक्रिया नहीं दे रहे हैं।जावा अवरुद्ध में आउटपुटस्ट्रीम है? (सॉकेट)
वह ट्रॉलिंग के लिए जाना जाता है, इसलिए मैं एक द्वितीयक थ्रेड को कार्यान्वित करते समय संदिग्ध था, जो अब क्लाइंट को डेटा भेजने के लिए ज़िम्मेदार है, जिसमें कतार है कि सर्वर बस उस पर संकुल जोड़ता है, फिर थ्रेड द्वारा पढ़ा जाता है डेटा भेजने के लिए।
प्रश्न अब मुझे सोचने के बाद है या नहीं, जावा सॉकेट का आउटपुटस्ट्रीम वास्तव में वह सामान कतार देता है जो वह स्वयं भेजना चाहता है, इस प्रकार पहले से ही एक कतार की आवश्यकता को खत्म कर देता है। गहन समस्याएं होने की संभावना तब होती है जब सर्वर तब तक अवरुद्ध हो जाता है जब तक कि उसे क्लाइंट से प्रतिक्रिया प्राप्त नहीं होती है कि प्रेषित ऑब्जेक्ट प्राप्त किया गया था।
धन्यवाद।
यदि मैं थ्रेड के रन फ़ंक्शन में आउटपुट या इनपुट स्ट्रीम प्राप्त करने का प्रयास करता हूं तो मैंने एक समान समस्या में भाग लिया है।सॉकेट के ब्लॉकिंग (दोनों getInputStream, और getOutputStream) के लिए समस्या यह है क्योंकि यह रन फ़ंक्शन में है ... समाधान इसे कन्स्ट्रक्टर में रखना, चर को सहेजना और फिर चर में चर को संदर्भित करना प्रतीत होता है। – Zimm3r