এই স্ট্যাক ট্রেস স্নিপেট দেওয়া
দ্বারা সৃষ্ট: java.net.SketException: সফ্টওয়্যার সংযোগ বিলোপ ঘটিয়েছে: java.net
. সকেটআউটপুটস্ট্রিম.সকেটওয়াইট0 (স্থানীয় পদ্ধতি) এ সকেট লেখার ত্রুটি
আমি নিম্নলিখিত প্রশ্নের উত্তর দেওয়ার চেষ্টা করেছি:
- কি কোড এই ব্যতিক্রম নিক্ষেপ করা হয়? (জেভিএম? / টমক্যাট? / আমার কোড?)
- কী কারণে এই ব্যতিক্রম নিক্ষেপ করা হয়?
# 1 সম্পর্কিত:
সূর্যের জেভিএম উত্সটিতে এই সঠিক বার্তাটি নেই, তবে আমি মনে করি পাঠ্য সফটওয়্যারটির কারণে সংযোগটি বাতিল হয়ে গেছে: সকেট লেখার ত্রুটি এর স্থানীয় প্রয়োগ থেকে SocketOutputStream
:
private native void socketWrite0(FileDescriptor fd, byte[] b, int off,
int len) throws IOException;
# 2 সম্পর্কিত
আমার ধারণাটি হ'ল ক্লায়েন্টটি সম্পূর্ণ প্রতিক্রিয়া পাওয়ার আগে সংযোগটি বন্ধ করে দিলে এটি ঘটেছিল (যেমন একটি অনুরোধ পাঠানো হয়েছিল, তবে পূর্ণ প্রতিক্রিয়া পাওয়ার আগে এটি বন্ধ / সমাপ্ত / অফলাইন হয়ে গেছে)
প্রশ্নাবলী:
- উপরের অনুমানগুলি কি সঠিক (# 1 এবং # 2)?
- এটিকে পরিস্থিতি থেকে আলাদা করা যায়: " সার্ভারের পাশে নেটওয়ার্ক ত্রুটির কারণে ক্লায়েন্টকে লেখা যায়নি "? বা যে একই ত্রুটি বার্তা রেন্ডার হবে?
- এবং সর্বাধিক গুরুত্বপূর্ণ: উপরে সরকারী কোন দলিল (যেমন সূর্যের থেকে) রয়েছে?
আমার কাছে একটি প্রমাণ থাকা দরকার যে এই স্ট্যাক ট্রেসটি সকেট ক্লায়েন্টের "ফল্ট", এবং সার্ভার এটি এড়াতে পারে না এমন কিছুই নেই। (ব্যতিক্রম ধরা, বা একটি সান জেভিএম সকেটআউটপুট স্ট্রিম ব্যবহার ব্যতীত, যদিও উভয়ই সত্যই ক্লায়েন্টের সমাপ্তির বিষয়টি এড়ায় না)
outs.write(audioBytes);
) byte[]
করার জন্য OutputStream
। অডিও যখন চালাচ্ছে এবং বাজানোর সময় ব্যবহারকারীরা অন্য কোনও মেনুতে ক্লিক করে (যা একটি সার্ভারের অনুরোধ প্রেরণ করে) কনসোলে একই ত্রুটি পেয়েছি। সুতরাং এই ব্যতিক্রম উপেক্ষা নিরাপদ?