আমি জাভা সকেট এপিআই দিয়ে কিছু সমস্যা নিয়ে চলেছি। আমি বর্তমানে আমার গেমের সাথে সংযুক্ত খেলোয়াড়ের সংখ্যা প্রদর্শন করার চেষ্টা করছি। কোনও খেলোয়াড় কখন সংযুক্ত হয়েছে তা নির্ধারণ করা সহজ। তবে, খেলোয়াড় কখন সকেট এপিআই ব্যবহার করে সংযোগ বিচ্ছিন্ন করেছে তা নির্ধারণ করা অযথা জটিল বলে মনে হয়।
isConnected()
দূরবর্তীভাবে সংযোগ বিচ্ছিন্ন করা এমন একটি সকেটে কল করা সর্বদা ফিরে আসবে বলে মনে হয় true
। একইভাবে, isClosed()
দূরবর্তীভাবে বন্ধ হয়ে যাওয়া সকেটে কল করা সর্বদা ফিরে আসবে বলে মনে হয় false
। আমি পড়েছি যে সকেট বন্ধ হয়েছে কিনা তা নির্ধারণ করার জন্য, আউটপুট স্ট্রিমে ডেটা লিখতে হবে এবং একটি ব্যতিক্রম অবশ্যই ধরা উচিত। এটিকে পরিস্থিতি পরিচালনা করার জন্য এটি সত্যিই অশুচি উপায় বলে মনে হচ্ছে। সকেট কখন বন্ধ হয়ে গেছে তা জানতে আমাদের কেবল ক্রমাগত নেটওয়ার্কের মধ্যে কোনও আবর্জনা বার্তা স্প্যাম করতে হবে।
অন্য কোন সমাধান আছে কি?