Hi, i've checked a hundred things before posting this question, but i forgot the most important thing, the buffer. The 'eaten' writes were buffered by the network-kernel and sent as bunch of data. If too much data for the buffer is sent, the write is broken up and completed in the next bunch-of-data. My receive-script hasn't diplayed the raw output, but an unserialized array, fetched out of the received string.
Maybe this will will help someone in future. Thomas 'Neo' Weber --- [EMAIL PROTECTED] [EMAIL PROTECTED] ----- Original Message ----- From: "Thomas Weber" <[EMAIL PROTECTED]> To: "PHP-List" <[EMAIL PROTECTED]> Sent: Saturday, September 13, 2003 9:15 PM Subject: [PHP] socket_write eats data > Hi, > > I am deveoping a chatserver in IRC-style in PHP. For communication it uses > socket-multiplexing aka socket_select. So long so good, works perfectly. > The problem is, than when i make several socket_write's to the same client > without waiting about 0.1sec after each write, the written data gets lost > somewhere. socket_write does NOT throw any error, the data seams just > sended, but the clients never receives it. > > Small example of the used code: > ----- > var $clients // array of 'client'-objects, each object has it's own > socket-descriptor in the object-variable $socket > > function write_to_clients ($text) { > for ($i = 0; $i < count ($this->clients); $i++) { > socket_write ($this->clients[$i]->socket, $text); > } > // usleep (10000); if this is uncommented, all write are received by all > clients > } > > for ($i = 0; $i < 10; $i++) { > $this->write_to_clients ("test ".$i); > } > ----- > > Okay, this doesn't check the client-sockets for readiness to write, but even > if I check (via socket_select), ALL clients are ready to write and writes > get lost too. It can't be the network-connection, because the tests run with > standalone PHP-clients on the same machine. > > Is there any possibility to make fast writes without waiting after each > write? The wait limits the server to max. 10 writes per second, wich isn't > really enaugh for a good chatserver. > > Thanks for your help! > > Thomas 'Neo' Weber > --- > [EMAIL PROTECTED] > [EMAIL PROTECTED] > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php