Hello all,
I am having a problem with getting multiple socket reads working in a simple socket server!
The writes appear to be working but the reads seam to only allow one read?
I know i am missing something. Could even be my approach is totally wrong Currently I have:
$input = socket_read($client[$i]['sock'] , 2024,PHP_BINARY_READ );
if ($input == null) {
// Zero length string meaning disconnected
echo "null input 1\n";
unset($client[$i]);
}
elseif ($input == 'exit') {
// requested disconnect
echo "exit\n";
socket_shutdown($client[$i]['sock']);
socket_close($client[$i]['sock']);
}
elseif ($input=="kill") {
echo "kill\n";
socket_shutdown($sock);
socket_close($sock);
die;
}
elseif ($input) {
// strip white spaces and write back to user
echo " <-- ". $input."\n";
socket_write( $client[$i]['sock'],dechex(50) );
echo " --> SYN ".socket_strerror(socket_last_error())."\n";
socket_write( $client[$i]['sock'],dechex(50) );
echo " --> SYN ".socket_strerror(socket_last_error())."\n";
socket_write( $client[$i]['sock'],dechex(50) );
echo " --> SYN ".socket_strerror(socket_last_error())."\n";
//$output = ereg_replace("[ \t\n\r]","",$input).chr(0);
if ( false == ( socket_write( $client[$i]['sock'],dechex(46) ) ) ) {
echo "socket_write() failed: reason: " . socket_strerror(socket_last_error()) . "\n";
}
else {
echo " --> ENQ ".socket_strerror(socket_last_error())."\n";
$input1 = socket_read($client[$i]['sock'] , 2024,PHP_BINARY_READ );
echo "<-- ". $input1." " . socket_strerror(socket_last_error()) ."\n";
};
}
else {
echo "nothing on INPUT\n";
}
----------
UMPA Brian C. Doyle Director, Internet Services United Merchant Processing Association <http://www.umpa-us.com>http://www.umpa-us.com 1-800-555-9665 ext 212