note 102249 modified in function.socket-write by danbrown
| From: | danbrown@php.net | Date: | Thu, 03 Feb 2011 23:02:18 +0000 |
| Subject: | note 102249 modified in function.socket-write by danbrown | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-176665@lists.php.net to get a copy of this message | ||
Some clients (Flash's XMLSocket for example) won't fire a read event until a new line is
recieved.
<?php
/*
* Write to a socket
* add a newline and null character at the end
* some clients don't read until new line is recieved
*
* try to send the rest of the data if it gets truncated
*/
function write(&$sock,$msg) {
$msg = "$msg\n\0";
$length = strlen($msg);
while(true) {
$sent = socket_write($sock,$msg,$length);
if($sent === false) {
return false;
}
if($sent < $length) {
$msg = substr($msg, $sent);
$length -= $sent;
print("Message truncated: Resending: $msg");
} else {
return true;
}
}
return false;
}
?>
--was--
Some clients (Flash's XMLSocket for example) won't fire a read event until a new line is
recieved.
/*
* Write to a socket
* add a newline and null character at the end
* some clients don't read until new line is recieved
*
* try to send the rest of the data if it gets truncated
*/
function write(&$sock,$msg) {
$msg = "$msg\n\0";
$length = strlen($msg);
while(true) {
$sent = socket_write($sock,$msg,$length);
if($sent === false) {
return false;
}
if($sent < $length) {
$msg = substr($msg, $sent);
$length -= $sent;
print("Message truncated: Resending: $msg");
} else {
return true;
}
}
return false;
}
http://php.net/manual/en/function.socket-write.php