سؤال

في C / C ++، كيف أنتقل مأخذ حجب بمقبس عدم عرقلة في كل WinSocks و* لا شىء. بحيث حدد () ستعمل بشكل صحيح. يمكنك استخدام قبل المعالج لمنصة رمز معين.

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

المحلول

في لينكس:

fcntl(fd, F_SETFL, O_NONBLOCK);

ويندوز :

u_long on = 1;
ioctlsocket(fd, FIONBIO, &on);

نصائح أخرى

وحدد () من المفترض أن تعمل على حجب مآخذ. وتعود عند قراءة () سيعود فورا، كما هو الحال مع مآخذ غير مؤمن دائما.

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