Thomas Weber wrote:
No, it's TCP and a very uncomplicated protocol, everything is sent in clear text. Major problem is the socket-multicasting to keep track of all clients simultanly.
----- Original Message ----- From: "Raditha Dissanayake" <[EMAIL PROTECTED]>
To: "Thomas Weber" <[EMAIL PROTECTED]>; "PHP-List"
<[EMAIL PROTECTED]>
Sent: Sunday, September 14, 2003 2:59 AM
Subject: Re: [PHP] socket_write eats data - solved
theIs IRC UDP? Thomas Weber wrote:
Hi,
i've checked a hundred things before posting this question, but i forgot
ofmost important thing, the buffer.
The 'eaten' writes were buffered by the network-kernel and sent as bunch
array,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
usesfetched 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
clientsocket-multiplexing aka socket_select. So long so good, works perfectly.
The problem is, than when i make several socket_write's to the same
lostwithout waiting about 0.1sec after each write, the written data gets
allsomewhere. 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
writesevenclients }
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
if I check (via socket_select), ALL clients are ready to write and
isn'tget lost too. It can't be the network-connection, because the tests runwith
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
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
-- http://www.radinks.com/upload Drag and Drop File Uploader.
-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
-- http://www.radinks.com/upload Drag and Drop File Uploader.
-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php