mirror of
https://github.com/php/php-src.git
synced 2024-10-21 00:12:34 +00:00
120 lines
2.2 KiB
PHP
120 lines
2.2 KiB
PHP
--TEST--
|
|
Testing stream_get_meta_data() "unread_bytes" field on a udp socket
|
|
--FILE--
|
|
<?php
|
|
|
|
/* Setup socket server */
|
|
$server = stream_socket_server('tcp://127.0.0.1:31337');
|
|
if ($server === false) {
|
|
die("stream_socket_server() failed\n");
|
|
}
|
|
|
|
/* Connect to it */
|
|
$client = fsockopen('tcp://127.0.0.1:31337');
|
|
if ($client === false) {
|
|
die("fsockopen() failed\n");
|
|
}
|
|
|
|
/* Accept that connection */
|
|
$socket = stream_socket_accept($server);
|
|
if ($socket === false) {
|
|
die("stream_socket_accept() failed\n");
|
|
}
|
|
|
|
echo "Write some data:\n";
|
|
fwrite($socket, "abcdefg\n1234567\nxyzxyz\n");
|
|
var_dump(stream_get_meta_data($client));
|
|
|
|
echo "\n\nRead a line from the client, causing data to be buffered:\n";
|
|
fgets($client);
|
|
var_dump(stream_get_meta_data($client));
|
|
|
|
echo "\n\nRead 3 bytes of data from the client:\n";
|
|
fread($client, 3);
|
|
var_dump(stream_get_meta_data($client));
|
|
|
|
echo "\n\nClose the server side socket and read the remaining data from the client:\n";
|
|
fclose($socket);
|
|
fclose($server);
|
|
while(!feof($client)) {
|
|
fread($client, 1);
|
|
}
|
|
var_dump(stream_get_meta_data($client));
|
|
|
|
?>
|
|
--EXPECTF--
|
|
Write some data:
|
|
array(7) {
|
|
["stream_type"]=>
|
|
string(%d) "tcp_socke%s"
|
|
["mode"]=>
|
|
string(2) "r+"
|
|
["unread_bytes"]=>
|
|
int(0)
|
|
["seekable"]=>
|
|
bool(false)
|
|
["timed_out"]=>
|
|
bool(false)
|
|
["blocked"]=>
|
|
bool(true)
|
|
["eof"]=>
|
|
bool(false)
|
|
}
|
|
|
|
|
|
Read a line from the client, causing data to be buffered:
|
|
array(7) {
|
|
["stream_type"]=>
|
|
string(%d) "tcp_socke%s"
|
|
["mode"]=>
|
|
string(2) "r+"
|
|
["unread_bytes"]=>
|
|
int(15)
|
|
["seekable"]=>
|
|
bool(false)
|
|
["timed_out"]=>
|
|
bool(false)
|
|
["blocked"]=>
|
|
bool(true)
|
|
["eof"]=>
|
|
bool(false)
|
|
}
|
|
|
|
|
|
Read 3 bytes of data from the client:
|
|
array(7) {
|
|
["stream_type"]=>
|
|
string(%d) "tcp_socke%s"
|
|
["mode"]=>
|
|
string(2) "r+"
|
|
["unread_bytes"]=>
|
|
int(12)
|
|
["seekable"]=>
|
|
bool(false)
|
|
["timed_out"]=>
|
|
bool(false)
|
|
["blocked"]=>
|
|
bool(true)
|
|
["eof"]=>
|
|
bool(false)
|
|
}
|
|
|
|
|
|
Close the server side socket and read the remaining data from the client:
|
|
array(7) {
|
|
["stream_type"]=>
|
|
string(%d) "tcp_socke%s"
|
|
["mode"]=>
|
|
string(2) "r+"
|
|
["unread_bytes"]=>
|
|
int(0)
|
|
["seekable"]=>
|
|
bool(false)
|
|
["timed_out"]=>
|
|
bool(false)
|
|
["blocked"]=>
|
|
bool(true)
|
|
["eof"]=>
|
|
bool(true)
|
|
}
|