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

Reply via email to