Edit report at http://bugs.php.net/bug.php?id=52848&edit=1
ID: 52848
Updated by: cataphract@php.net
Reported by: php dot net at phrozenbyte dot de
Summary: Processing out-of-band data doesn't work
Status: Open
Type: Bug
Package: Streams related
Operating System: Ubuntu 10.04 Lucid Lynx
PHP Version: 5.3.3
Block user comment: N
New Comment:
I can reproduce it in Linux.
In Windows, the server gets no data at all (the first
stream_socket_recvfrom keeps blocking indefinitely).
Previous Comments:
------------------------------------------------------------------------
[2010-09-15 04:13:49] php dot net at phrozenbyte dot de
Description:
------------
I'm not sure what's going wrong (stream_socket_sendto() or
stream_socket_recvfrom()) but proccessing out-of-band data doesn't work
correctly. Only the last byte is send as out-of-band data, all other
data is send as usally.
Test script:
---------------
Server:
<?php
$server = stream_socket_server('tcp://127.0.0.1:1234');
$socket = stream_socket_accept($server);
echo "OOB-Data 1/2: '".stream_socket_recvfrom($socket, 1500,
STREAM_OOB)."'\n";
echo "OOB-Data 2/2: '".stream_socket_recvfrom($socket, 1500,
STREAM_OOB)."'\n";
echo "Data 1/2: '".stream_socket_recvfrom($socket, 1500)."'\n";
echo "Data 2/2: '".stream_socket_recvfrom($socket, 1500)."'\n";
fclose($socket);
fclose($server);
?>
Client:
<?php
$socket = stream_socket_client('tcp://127.0.0.1:1234');
stream_socket_sendto($socket, '123456789', STREAM_OOB);
fclose($socket);
?>
Expected result:
----------------
OOB-Data 1/2: '123456789'
OOB-Data 2/2: ''
Data 1/2: ''
Data 2/2: ''
Actual result:
--------------
OOB-Data 1/2: '9'
OOB-Data 2/2: ''
Data 1/2: '12345678'
Data 2/2: ''
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/bug.php?id=52848&edit=1