Annotation of embedaddon/php/ext/sockets/tests/socket_sentto_recvfrom_ipv6_udp-win32.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test if socket_recvfrom() receives data sent by socket_sendto() via IPv6 UDP (Win32)
3: --SKIPIF--
4: <?php
5: if (!extension_loaded('sockets')) {
6: die('SKIP The sockets extension is not loaded.');
7: }
8: if (substr(PHP_OS, 0, 3) != 'WIN') {
9: die('skip only for Windows');
10: }
11: require 'ipv6_skipif.inc';
12: --FILE--
13: <?php
14: $socket = socket_create(AF_INET6, SOCK_DGRAM, SOL_UDP);
15: if (!$socket) {
16: die('Unable to create AF_INET6 socket');
17: }
18: if (!socket_set_nonblock($socket)) {
19: die('Unable to set nonblocking mode for socket');
20: }
21: socket_recvfrom($socket, $buf, 12, 0, $from, $port); // cause warning
22: $address = '::1';
23: socket_sendto($socket, '', 1, 0, $address); // cause warning
24: if (!socket_bind($socket, $address, 1223)) {
25: die("Unable to bind to $address:1223");
26: }
27:
28: $msg = "Ping!";
29: $len = strlen($msg);
30: $bytes_sent = socket_sendto($socket, $msg, $len, 0, $address, 1223);
31: if ($bytes_sent == -1) {
32: die('An error occurred while sending to the socket');
33: } else if ($bytes_sent != $len) {
34: die($bytes_sent . ' bytes have been sent instead of the ' . $len . ' bytes expected');
35: }
36:
37: $from = "";
38: $port = 0;
39: socket_recvfrom($socket, $buf, 12, 0); // cause warning
40: socket_recvfrom($socket, $buf, 12, 0, $from); // cause warning
41: $bytes_received = socket_recvfrom($socket, $buf, 12, 0, $from, $port);
42: if ($bytes_received == -1) {
43: die('An error occurred while receiving from the socket');
44: } else if ($bytes_received != $len) {
45: die($bytes_received . ' bytes have been received instead of the ' . $len . ' bytes expected');
46: }
47: echo "Received $buf from remote address $from and remote port $port" . PHP_EOL;
48:
49: socket_close($socket);
50: --EXPECTF--
51: Warning: socket_recvfrom(): unable to recvfrom [10022]: An invalid argument was supplied.
52: in %s on line %d
53:
54: Warning: Wrong parameter count for socket_sendto() in %s on line %d
55:
56: Warning: socket_recvfrom() expects at least 5 parameters, 4 given in %s on line %d
57:
58: Warning: Wrong parameter count for socket_recvfrom() in %s on line %d
59: Received Ping! from remote address ::1 and remote port 1223
60: --CREDITS--
61: Falko Menge <mail at falko-menge dot de>
62: PHP Testfest Berlin 2009-05-09
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>