$fp = stream_socket_server("ssl://127.0.0.1:10011", $errornum, $errorstr, $flags, $context);
phpt_notify();
$conn = stream_socket_accept($fp);
- fread($conn, 100000);
+ $total = 100000;
+ $result = fread($conn, $total);
+ stream_set_blocking($conn, false);
+ usleep(50000);
+ $read = [$conn];
+ while (stream_select($read, $write, $except, 180)) {
+ $result = fread($conn, 100000);
+ if (!$result) {
+ break;
+ }
+ $total += strlen($result);
+ if ($total >= 4000000) {
+ break;
+ }
+ }
phpt_wait();
CODE;
phpt_wait();
$fp = stream_socket_client("ssl://127.0.0.1:10011", $errornum, $errorstr, 3000, STREAM_CLIENT_CONNECT, $context);
- stream_set_blocking($fp, 0);
+ stream_set_blocking($fp, false);
function blocking_fwrite($fp, $buf) {
$write = [$fp];
$total = 0;
while (stream_select($read, $write, $except, 180)) {
$result = fwrite($fp, $buf);
+ if (!$result) {
+ break;
+ }
$total += $result;
if ($total >= strlen($buf)) {
return $total;
$buf = substr($buf, $total);
}
}
- $str1 = str_repeat("a", 3000000);
+ $str1 = str_repeat("a", 4000000);
blocking_fwrite($fp, $str1);
phpt_notify();
echo "done";