এখানে দুর্ঘটনা রোধ করার সেরা অনুশীলন কোনটি?
হয় প্রতিটি হিসাবে sigpines অক্ষম করুন, বা ত্রুটি ধরা এবং উপেক্ষা।
লাইনের অন্য দিকটি এখনও পড়ছে কিনা তা পরীক্ষা করার কোনও উপায় আছে?
হ্যাঁ, নির্বাচন করুন () ব্যবহার করুন।
নির্বাচন () এখানে কাজ করবে বলে মনে হয় না কারণ এটি সর্বদা বলে যে সকেটটি লিখনযোগ্য।
আপনার পড়ার বিটগুলিতে নির্বাচন করতে হবে । আপনি সম্ভবত উপেক্ষা করতে পারেন লেখার বিট ।
যখন প্রান্তটি তার ফাইল হ্যান্ডেলটি বন্ধ করে দেয়, তখন নির্বাচন আপনাকে জানাবে যে পড়ার জন্য ডেটা প্রস্তুত রয়েছে। আপনি যখন যান এবং এটি পড়েন, আপনি 0 বাইট ফিরে পাবেন, যা ওএস আপনাকে বলবে যে ফাইল হ্যান্ডেলটি বন্ধ হয়ে গেছে।
কেবলমাত্র আপনি যখন লেখার বিটগুলি উপেক্ষা করতে পারবেন না তা হ'ল আপনি যদি বড় পরিমাণে পাঠাচ্ছেন এবং অন্য প্রান্তটি ব্যাকলগ হওয়ার ঝুঁকি রয়েছে যা আপনার বাফারগুলি পূরণ করতে পারে। যদি এটি ঘটে থাকে তবে ফাইল হ্যান্ডেলটিতে লেখার চেষ্টা করার ফলে আপনার প্রোগ্রাম / থ্রেডটি ব্লক বা ব্যর্থ হতে পারে। লেখার আগে বাছাইয়ের পরীক্ষা আপনাকে এ থেকে রক্ষা করবে, তবে এটির গ্যারান্টি নেই যে অন্য প্রান্তটি স্বাস্থ্যকর বা আপনার ডেটা আসতে চলেছে।
নোট করুন যে আপনি কাছাকাছি থেকে সিগপাইপ পেতে পারেন () পাশাপাশি আপনি যখন লিখবেন।
বন্ধ করুন কোনও বাফার ডেটা ফ্লাশ করে। যদি অন্য প্রান্তটি ইতিমধ্যে বন্ধ হয়ে গেছে, তবে বন্ধটি ব্যর্থ হবে এবং আপনি একটি সিগপাইপ পাবেন।
আপনি যদি বাফার টিসিপিআইপি ব্যবহার করে থাকেন তবে একটি সফল লেখার অর্থ হল আপনার ডেটা প্রেরণের জন্য সারিবদ্ধ করা হয়েছে, এর অর্থ এই নয় যে এটি প্রেরণ করা হয়েছে। যতক্ষণ না আপনি সফলভাবে কাছে কল করবেন, আপনি জানেন না যে আপনার ডেটা প্রেরণ করা হয়েছে।
সিগপাইপ আপনাকে বলছে যে কিছু ভুল হয়েছে, এটি আপনাকে কী করবে না বা আপনার কী করা উচিত তা আপনাকে জানায় না।