जैसा कि मैं समझता हूं, PHP 5.x में nonblocking नेटवर्क socket बनाना संभव है।अनब्लॉकिंग सॉकेट: संदेश कतारबद्ध हैं?
लेकिन एक स्क्रिप्ट का पालन ही nonblocking सॉकेट का उपयोग कर कई लंबे संदेश भेजता है, तो क्या होता है:
socket_write($socket, $string1, $length);
socket_write($socket, $string2, $length);
socket_write($socket, $string3, $length);
socket_write($socket, $string4, $length);
इन संदेशों को पंक्तिबद्ध (? प्रेषक/रिसीवर की ओर) कर रहे हैं या यह संभव है कि रिसीवर हो जाता है विभिन्न संदेशों के कुछ हिस्सों क्योंकि उन्होंने "समांतर" भेजा?
उदाहरण के लिए: संभव है कि रिसीवर $ string1 के 10 बाइट्स, तो $ string2 के 30 बाइट्स हो जाता है, तो $ string1 ... और इतने पर की एक और 25 बाइट्स ....
+1 यह भी देखें http://stackoverflow.com/questions/1432477/can-php-asynchronously-use-sockets – msanford
इसका मतलब ऊपर मेरे उदाहरण के लिए है: टीसीपी सॉकेट गारंटी देगा कि रिसीवर $ string2 से डेटा कभी नहीं देख पाएगा , 3 या 4 जब तक $ string1 पूरी तरह से प्राप्त नहीं हुआ था? – Mike
हां, लेकिन ध्यान रखें कि सभी डेटा एक ही सॉकेट पर लिखे गए हैं, इसलिए रिसीवर डेटा को जानकारी की एक स्ट्रीम के रूप में देखेगा। जब तक आप अपने डेटा में स्ट्रिंग लम्बाई, डिलीमीटर, या कुछ अन्य जानकारी जोड़ते हैं, तो रिसीवर नहीं जान पाएगा कि '$ string1' समाप्त होता है और' $ string2' शुरू होता है। –