Skip to content

Commit e51ef7e

Browse files
committed
#31: + Stream: stream_socket_accept() + timeout
1 parent 2509293 commit e51ef7e

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
--TEST--
2+
Stream: stream_socket_accept() + timeout
3+
--FILE--
4+
<?php
5+
6+
use function Async\spawn;
7+
use function Async\awaitAll;
8+
use function Async\delay;
9+
use function Async\suspend;
10+
11+
echo "Start\n";
12+
13+
$server_port = null;
14+
15+
// Server coroutine
16+
$server = spawn(function() {
17+
echo "Server: starting\n";
18+
19+
$socket = stream_socket_server("tcp://127.0.0.1:0", $errno, $errstr);
20+
if (!$socket) {
21+
echo "Server: failed to start - $errstr\n";
22+
return;
23+
}
24+
25+
$address = stream_socket_get_name($socket, false);
26+
$server_port = (int)substr($address, strrpos($address, ':') + 1);
27+
echo "Server: listening on port $server_port\n";
28+
29+
echo "Server: accepting connections\n";
30+
$client = stream_socket_accept($socket, 1);
31+
32+
echo "Server end\n";
33+
});
34+
35+
echo "End\n";
36+
37+
?>
38+
--EXPECTF--
39+
Start
40+
End
41+
Server: starting
42+
Server: listening on port %d
43+
Server: accepting connections
44+
45+
Warning: stream_socket_accept(): %s
46+
Server end

0 commit comments

Comments
 (0)