سؤال

أعلم أن القراءة () هي مكالمة حظر ما لم تصنع عدم حجب المقبس. لذلك أتوقع قراءة () استدعاء الطلبات التي يجب أن تعيد 4K من البيانات إرجاع قيمة إيجابية (لا قراءة البايتات) أو -1 عند الخطأ (إعادة تعيين الاتصال المحتمل عن طريق العميل وما إلى ذلك). سؤالي هو: يمكن قراءة () العودة "0" في أي مناسبة؟

أنا أعالج قراءة () بهذه الطريقة:

   if ((readval = read(acceptfd, buf, sizeof(buf) - 1)) < 0)
    {

    }
    else
    {
       buf[readval] = 0;
       //Do some thing with data  
    }

هذه الكود القنابل إذا قرأت () العودة صفر وأنا أعرف كيفية إصلاحه. ولكن هل من الممكن قراءة () للعودة صفر؟

هل كانت مفيدة؟

المحلول

عند إغلاق اتصال TCP عند قراءة جانبية واحدة () على الجانب الآخر إرجاع 0 بايت.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top