import zend sockets tests
Esse commit está contido em:
@@ -0,0 +1,2 @@
|
||||
<?php
|
||||
var_dump(defined('SO_REUSEPORT'));
|
||||
@@ -0,0 +1 @@
|
||||
bool(true)
|
||||
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
$listenfd = socket_create(AF_INET6, SOCK_STREAM, SOL_TCP);
|
||||
socket_bind($listenfd, "::1", 13579);
|
||||
socket_listen($listenfd);
|
||||
socket_set_nonblock($listenfd);
|
||||
$connfd = @socket_accept($listenfd);
|
||||
echo socket_last_error();
|
||||
@@ -0,0 +1 @@
|
||||
10035
|
||||
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
|
||||
socket_bind($socket, '0.0.0.0', 31057);
|
||||
|
||||
$so = socket_set_option($socket, IPPROTO_IP, MCAST_JOIN_GROUP, array(
|
||||
"group" => '224.0.0.251',
|
||||
"interface" => 0,
|
||||
));
|
||||
var_dump($so);
|
||||
@@ -0,0 +1 @@
|
||||
bool(true)
|
||||
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
/* Setup socket server */
|
||||
$server = socket_create(AF_INET6, SOCK_STREAM, getprotobyname('tcp'));
|
||||
if (!$server) {
|
||||
die('Unable to create AF_INET6 socket [server]');
|
||||
}
|
||||
if (!socket_bind($server, '::1', 31337)) {
|
||||
die('Unable to bind to [::1]:31337');
|
||||
}
|
||||
if (!socket_listen($server, 2)) {
|
||||
die('Unable to listen on socket');
|
||||
}
|
||||
|
||||
/* Connect to it */
|
||||
$client = socket_create(AF_INET6, SOCK_STREAM, getprotobyname('tcp'));
|
||||
if (!$client) {
|
||||
die('Unable to create AF_INET6 socket [client]');
|
||||
}
|
||||
if (!socket_connect($client, '::1', 31337)) {
|
||||
die('Unable to connect to server socket');
|
||||
}
|
||||
|
||||
/* Accept that connection */
|
||||
$socket = socket_accept($server);
|
||||
if (!$socket) {
|
||||
die('Unable to accept connection');
|
||||
}
|
||||
|
||||
socket_write($client, "ABCdef123\n");
|
||||
|
||||
$data = socket_read($socket, 10, PHP_BINARY_READ);
|
||||
var_dump($data);
|
||||
|
||||
socket_close($client);
|
||||
socket_close($socket);
|
||||
socket_close($server);
|
||||
?>
|
||||
@@ -0,0 +1,2 @@
|
||||
string(10) "ABCdef123
|
||||
"
|
||||
@@ -0,0 +1,133 @@
|
||||
<?php
|
||||
include __DIR__."/mcast_helpers.php.inc";
|
||||
$domain = AF_INET;
|
||||
$level = IPPROTO_IP;
|
||||
$interface = "lo";
|
||||
$mcastaddr = '224.0.0.23';
|
||||
$sblock = "127.0.0.1";
|
||||
|
||||
echo "creating send socket bound to 127.0.0.1\n";
|
||||
$sends1 = socket_create($domain, SOCK_DGRAM, SOL_UDP);
|
||||
$br = socket_bind($sends1, '127.0.0.1');
|
||||
var_dump($br);
|
||||
|
||||
echo "creating unbound socket and hoping the routing table causes an interface other than lo to be used for sending messages to $mcastaddr\n";
|
||||
$sends2 = socket_create($domain, SOCK_DGRAM, SOL_UDP);
|
||||
var_dump($br);
|
||||
|
||||
echo "creating receive socket\n";
|
||||
$s = socket_create($domain, SOCK_DGRAM, SOL_UDP);
|
||||
var_dump($s);
|
||||
$br = socket_bind($s, '0.0.0.0', 3000);
|
||||
var_dump($br);
|
||||
|
||||
$so = socket_set_option($s, $level, MCAST_JOIN_GROUP, array(
|
||||
"group" => $mcastaddr,
|
||||
"interface" => $interface,
|
||||
));
|
||||
var_dump($so);
|
||||
|
||||
$r = socket_sendto($sends1, $m = "initial packet", strlen($m), 0, $mcastaddr, 3000);
|
||||
var_dump($r);
|
||||
|
||||
$i = 0;
|
||||
checktimeout($s, 500);
|
||||
while (($str = socket_read($s, 3000)) !== FALSE) {
|
||||
$i++;
|
||||
echo "$i> ", $str, "\n";
|
||||
|
||||
if ($i == 1) {
|
||||
echo "leaving group\n";
|
||||
$so = socket_set_option($s, $level, MCAST_LEAVE_GROUP, array(
|
||||
"group" => $mcastaddr,
|
||||
"interface" => $interface,
|
||||
));
|
||||
var_dump($so);
|
||||
$r = socket_sendto($sends1, $m = "ignored mcast packet", strlen($m), 0, $mcastaddr, 3000);
|
||||
var_dump($r);
|
||||
$r = socket_sendto($sends1, $m = "unicast packet", strlen($m), 0, "127.0.0.1", 3000);
|
||||
var_dump($r);
|
||||
}
|
||||
if ($i == 2) {
|
||||
echo "re-joining group\n";
|
||||
$so = socket_set_option($s, $level, MCAST_JOIN_GROUP, array(
|
||||
"group" => $mcastaddr,
|
||||
"interface" => $interface,
|
||||
));
|
||||
var_dump($so);
|
||||
$r = socket_sendto($sends2, $m = "ignored mcast packet (different interface)", strlen($m), 0, $mcastaddr, 3000);
|
||||
var_dump($r);
|
||||
$r = socket_sendto($sends1, $m = "mcast packet", strlen($m), 0, $mcastaddr, 3000);
|
||||
var_dump($r);
|
||||
}
|
||||
if ($i == 3) {
|
||||
echo "blocking source\n";
|
||||
$so = socket_set_option($s, $level, MCAST_BLOCK_SOURCE, array(
|
||||
"group" => $mcastaddr,
|
||||
"interface" => $interface,
|
||||
"source" => $sblock,
|
||||
));
|
||||
var_dump($so);
|
||||
$r = socket_sendto($sends1, $m = "ignored packet (blocked source)", strlen($m), 0, $mcastaddr, 3000);
|
||||
var_dump($r);
|
||||
$r = socket_sendto($sends1, $m = "unicast packet", strlen($m), 0, "127.0.0.1", 3000);
|
||||
var_dump($r);
|
||||
}
|
||||
if ($i == 4) {
|
||||
echo "unblocking source\n";
|
||||
$so = socket_set_option($s, $level, MCAST_UNBLOCK_SOURCE, array(
|
||||
"group" => $mcastaddr,
|
||||
"interface" => $interface,
|
||||
"source" => $sblock,
|
||||
));
|
||||
var_dump($so);
|
||||
$r = socket_sendto($sends1, $m = "mcast packet from 127.0.0.1", strlen($m), 0, $mcastaddr, 3000);
|
||||
var_dump($r);
|
||||
}
|
||||
if ($i == 5) {
|
||||
echo "leaving group\n";
|
||||
$so = socket_set_option($s, $level, MCAST_LEAVE_GROUP, array(
|
||||
"group" => $mcastaddr,
|
||||
"interface" => $interface,
|
||||
));
|
||||
var_dump($so);
|
||||
$r = socket_sendto($sends1, $m = "ignored mcast packet", strlen($m), 0, $mcastaddr, 3000);
|
||||
var_dump($r);
|
||||
$r = socket_sendto($sends1, $m = "unicast packet", strlen($m), 0, "127.0.0.1", 3000);
|
||||
var_dump($r);
|
||||
}
|
||||
if ($i == 6) {
|
||||
echo "joining source group\n";
|
||||
$so = socket_set_option($s, $level, MCAST_JOIN_SOURCE_GROUP, array(
|
||||
"group" => $mcastaddr,
|
||||
"interface" => $interface,
|
||||
"source" => $sblock,
|
||||
));
|
||||
var_dump($so);
|
||||
$r = socket_sendto($sends1, $m = "mcast packet from 127.0.0.1", strlen($m), 0, $mcastaddr, 3000);
|
||||
var_dump($r);
|
||||
}
|
||||
if ($i == 7) {
|
||||
echo "leaving source group\n";
|
||||
$so = socket_set_option($s, $level, MCAST_LEAVE_SOURCE_GROUP, array(
|
||||
"group" => $mcastaddr,
|
||||
"interface" => $interface,
|
||||
"source" => $sblock,
|
||||
));
|
||||
var_dump($so);
|
||||
$r = socket_sendto($sends1, $m = "ignored mcast packet", strlen($m), 0, $mcastaddr, 3000);
|
||||
var_dump($r);
|
||||
$r = socket_sendto($sends1, $m = "unicast packet", strlen($m), 0, "127.0.0.1", 3000);
|
||||
var_dump($r);
|
||||
}
|
||||
if ($i == 8) {
|
||||
/* echo "rjsg\n";
|
||||
$so = socket_set_option($s, $level, MCAST_JOIN_GROUP, array(
|
||||
"group" => $mcastaddr,
|
||||
"interface" => $interface,
|
||||
));
|
||||
var_dump($so);*/
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
creating send socket bound to 127.0.0.1
|
||||
bool(true)
|
||||
creating unbound socket and hoping the routing table causes an interface other than lo to be used for sending messages to 224.0.0.23
|
||||
bool(true)
|
||||
creating receive socket
|
||||
resource(%d) of type (Socket)
|
||||
bool(true)
|
||||
bool(true)
|
||||
int(14)
|
||||
1> initial packet
|
||||
leaving group
|
||||
bool(true)
|
||||
int(20)
|
||||
int(14)
|
||||
2> unicast packet
|
||||
re-joining group
|
||||
bool(true)
|
||||
int(42)
|
||||
int(12)
|
||||
3> mcast packet
|
||||
blocking source
|
||||
bool(true)
|
||||
int(31)
|
||||
int(14)
|
||||
4> unicast packet
|
||||
unblocking source
|
||||
bool(true)
|
||||
int(27)
|
||||
5> mcast packet from 127.0.0.1
|
||||
leaving group
|
||||
bool(true)
|
||||
int(20)
|
||||
int(14)
|
||||
6> unicast packet
|
||||
joining source group
|
||||
bool(true)
|
||||
int(27)
|
||||
7> mcast packet from 127.0.0.1
|
||||
leaving source group
|
||||
bool(true)
|
||||
int(20)
|
||||
int(14)
|
||||
8> unicast packet
|
||||
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
$domain = AF_INET;
|
||||
$level = IPPROTO_IP;
|
||||
$s = socket_create($domain, SOCK_DGRAM, SOL_UDP) or die("err");
|
||||
|
||||
echo "Setting IP_MULTICAST_TTL\n";
|
||||
$r = socket_set_option($s, $level, IP_MULTICAST_TTL, 9);
|
||||
var_dump($r);
|
||||
$r = socket_get_option($s, $level, IP_MULTICAST_TTL);
|
||||
var_dump($r);
|
||||
echo "\n";
|
||||
|
||||
echo "Setting IP_MULTICAST_LOOP\n";
|
||||
$r = socket_set_option($s, $level, IP_MULTICAST_LOOP, 0);
|
||||
var_dump($r);
|
||||
$r = socket_get_option($s, $level, IP_MULTICAST_LOOP);
|
||||
var_dump($r);
|
||||
$r = socket_set_option($s, $level, IP_MULTICAST_LOOP, 1);
|
||||
var_dump($r);
|
||||
$r = socket_get_option($s, $level, IP_MULTICAST_LOOP);
|
||||
var_dump($r);
|
||||
echo "\n";
|
||||
|
||||
echo "Setting IP_MULTICAST_IF\n";
|
||||
echo "interface 0:\n";
|
||||
$r = socket_set_option($s, $level, IP_MULTICAST_IF, 0);
|
||||
var_dump($r);
|
||||
$r = socket_get_option($s, $level, IP_MULTICAST_IF);
|
||||
var_dump($r);
|
||||
echo "interface 1:\n";
|
||||
$r = socket_set_option($s, $level, IP_MULTICAST_IF, 1);
|
||||
var_dump($r);
|
||||
$r = socket_get_option($s, $level, IP_MULTICAST_IF);
|
||||
var_dump($r);
|
||||
echo "\n";
|
||||
@@ -0,0 +1,17 @@
|
||||
Setting IP_MULTICAST_TTL
|
||||
bool(true)
|
||||
int(9)
|
||||
|
||||
Setting IP_MULTICAST_LOOP
|
||||
bool(true)
|
||||
int(0)
|
||||
bool(true)
|
||||
int(1)
|
||||
|
||||
Setting IP_MULTICAST_IF
|
||||
interface 0:
|
||||
bool(true)
|
||||
int(0)
|
||||
interface 1:
|
||||
bool(true)
|
||||
int(1)
|
||||
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
$domain = AF_INET;
|
||||
$level = IPPROTO_IP;
|
||||
$s = socket_create($domain, SOCK_DGRAM, SOL_UDP) or die("err");
|
||||
|
||||
echo "Setting IP_MULTICAST_LOOP with 256\n";
|
||||
//if we had a simple cast to unsigned char, this would be the same as 0
|
||||
$r = socket_set_option($s, $level, IP_MULTICAST_LOOP, 256);
|
||||
var_dump($r);
|
||||
$r = socket_get_option($s, $level, IP_MULTICAST_LOOP);
|
||||
var_dump($r);
|
||||
echo "\n";
|
||||
|
||||
echo "Setting IP_MULTICAST_LOOP with false\n";
|
||||
//should convert to (unsigned char)0
|
||||
$r = socket_set_option($s, $level, IP_MULTICAST_LOOP, false);
|
||||
var_dump($r);
|
||||
$r = socket_get_option($s, $level, IP_MULTICAST_LOOP);
|
||||
var_dump($r);
|
||||
echo "\n";
|
||||
|
||||
echo "Setting IP_MULTICAST_TTL with 256\n";
|
||||
//if we had a simple cast to unsigned char, this would be the same as 0
|
||||
$r = socket_set_option($s, $level, IP_MULTICAST_TTL, 256);
|
||||
var_dump($r);
|
||||
$r = socket_get_option($s, $level, IP_MULTICAST_TTL);
|
||||
var_dump($r);
|
||||
echo "\n";
|
||||
|
||||
echo "Setting IP_MULTICAST_TTL with \"254\"\n";
|
||||
$r = socket_set_option($s, $level, IP_MULTICAST_TTL, "254");
|
||||
var_dump($r);
|
||||
$r = socket_get_option($s, $level, IP_MULTICAST_TTL);
|
||||
var_dump($r);
|
||||
echo "\n";
|
||||
|
||||
echo "Setting IP_MULTICAST_TTL with -1\n";
|
||||
//should give error, not be the same as 255
|
||||
$r = socket_set_option($s, $level, IP_MULTICAST_TTL, -1);
|
||||
var_dump($r);
|
||||
$r = socket_get_option($s, $level, IP_MULTICAST_TTL);
|
||||
var_dump($r);
|
||||
echo "\n";
|
||||
@@ -0,0 +1,21 @@
|
||||
Setting IP_MULTICAST_LOOP with 256
|
||||
bool(true)
|
||||
int(1)
|
||||
|
||||
Setting IP_MULTICAST_LOOP with false
|
||||
bool(true)
|
||||
int(0)
|
||||
|
||||
Setting IP_MULTICAST_TTL with 256
|
||||
HipHop Warning: %a
|
||||
bool(false)
|
||||
int(1)
|
||||
|
||||
Setting IP_MULTICAST_TTL with "254"
|
||||
bool(true)
|
||||
int(254)
|
||||
|
||||
Setting IP_MULTICAST_TTL with -1
|
||||
HipHop Warning: %a
|
||||
bool(false)
|
||||
int(254)
|
||||
@@ -0,0 +1,134 @@
|
||||
<?php
|
||||
include __DIR__."/mcast_helpers.php.inc";
|
||||
$domain = AF_INET6;
|
||||
$level = IPPROTO_IPV6;
|
||||
$interface = 0;
|
||||
$mcastaddr = 'ff01::114';
|
||||
$sblock = "?";
|
||||
|
||||
echo "creating send socket\n";
|
||||
$sends1 = socket_create($domain, SOCK_DGRAM, SOL_UDP) or die("err");
|
||||
var_dump($sends1);
|
||||
|
||||
echo "creating receive socket\n";
|
||||
$s = socket_create($domain, SOCK_DGRAM, SOL_UDP) or die("err");
|
||||
var_dump($s);
|
||||
$br = socket_bind($s, '::0', 3000) or die("err");
|
||||
var_dump($br);
|
||||
|
||||
$so = socket_set_option($s, $level, MCAST_JOIN_GROUP, array(
|
||||
"group" => $mcastaddr,
|
||||
"interface" => $interface,
|
||||
)) or die("err");
|
||||
var_dump($so);
|
||||
|
||||
$r = socket_sendto($sends1, $m = "testing packet", strlen($m), 0, $mcastaddr, 3000);
|
||||
var_dump($r);
|
||||
checktimeout($s, 500);
|
||||
$r = socket_recvfrom($s, $str, 2000, 0, $from, $fromPort);
|
||||
var_dump($r, $str, $from);
|
||||
$sblock = $from;
|
||||
|
||||
$r = socket_sendto($sends1, $m = "initial packet", strlen($m), 0, $mcastaddr, 3000);
|
||||
var_dump($r);
|
||||
|
||||
$i = 0;
|
||||
checktimeout($s, 500);
|
||||
while (($str = socket_read($s, 3000)) !== FALSE) {
|
||||
$i++;
|
||||
echo "$i> ", $str, "\n";
|
||||
|
||||
if ($i == 1) {
|
||||
echo "leaving group\n";
|
||||
$so = socket_set_option($s, $level, MCAST_LEAVE_GROUP, array(
|
||||
"group" => $mcastaddr,
|
||||
"interface" => $interface,
|
||||
));
|
||||
var_dump($so);
|
||||
$r = socket_sendto($sends1, $m = "ignored mcast packet", strlen($m), 0, $mcastaddr, 3000);
|
||||
var_dump($r);
|
||||
$r = socket_sendto($sends1, $m = "unicast packet", strlen($m), 0, "::1", 3000);
|
||||
var_dump($r);
|
||||
}
|
||||
if ($i == 2) {
|
||||
echo "re-joining group\n";
|
||||
$so = socket_set_option($s, $level, MCAST_JOIN_GROUP, array(
|
||||
"group" => $mcastaddr,
|
||||
"interface" => $interface,
|
||||
));
|
||||
var_dump($so);
|
||||
$r = socket_sendto($sends1, $m = "mcast packet", strlen($m), 0, $mcastaddr, 3000);
|
||||
var_dump($r);
|
||||
}
|
||||
if ($i == 3) {
|
||||
echo "blocking source\n";
|
||||
$so = socket_set_option($s, $level, MCAST_BLOCK_SOURCE, array(
|
||||
"group" => $mcastaddr,
|
||||
"interface" => $interface,
|
||||
"source" => $sblock,
|
||||
));
|
||||
var_dump($so);
|
||||
$r = socket_sendto($sends1, $m = "ignored packet (blocked source)", strlen($m), 0, $mcastaddr, 3000);
|
||||
var_dump($r);
|
||||
$r = socket_sendto($sends1, $m = "unicast packet", strlen($m), 0, "::1", 3000);
|
||||
var_dump($r);
|
||||
}
|
||||
if ($i == 4) {
|
||||
echo "unblocking source\n";
|
||||
$so = socket_set_option($s, $level, MCAST_UNBLOCK_SOURCE, array(
|
||||
"group" => $mcastaddr,
|
||||
"interface" => $interface,
|
||||
"source" => $sblock,
|
||||
));
|
||||
var_dump($so);
|
||||
$r = socket_sendto($sends1, $m = "mcast packet", strlen($m), 0, $mcastaddr, 3000);
|
||||
var_dump($r);
|
||||
}
|
||||
if ($i == 5) {
|
||||
echo "leaving group\n";
|
||||
$so = socket_set_option($s, $level, MCAST_LEAVE_GROUP, array(
|
||||
"group" => $mcastaddr,
|
||||
"interface" => $interface,
|
||||
));
|
||||
var_dump($so);
|
||||
$r = socket_sendto($sends1, $m = "ignored mcast packet", strlen($m), 0, $mcastaddr, 3000);
|
||||
var_dump($r);
|
||||
$r = socket_sendto($sends1, $m = "unicast packet", strlen($m), 0, "::1", 3000);
|
||||
var_dump($r);
|
||||
}
|
||||
if ($i == 6) {
|
||||
echo "joining source group\n";
|
||||
$so = socket_set_option($s, $level, MCAST_JOIN_SOURCE_GROUP, array(
|
||||
"group" => $mcastaddr,
|
||||
"interface" => $interface,
|
||||
"source" => $sblock,
|
||||
));
|
||||
var_dump($so);
|
||||
$r = socket_sendto($sends1, $m = "mcast packet from desired source", strlen($m), 0, $mcastaddr, 3000);
|
||||
var_dump($r);
|
||||
}
|
||||
if ($i == 7) {
|
||||
echo "leaving source group\n";
|
||||
$so = socket_set_option($s, $level, MCAST_LEAVE_SOURCE_GROUP, array(
|
||||
"group" => $mcastaddr,
|
||||
"interface" => $interface,
|
||||
"source" => $sblock,
|
||||
));
|
||||
var_dump($so);
|
||||
$r = socket_sendto($sends1, $m = "ignored mcast packet", strlen($m), 0, $mcastaddr, 3000);
|
||||
var_dump($r);
|
||||
$r = socket_sendto($sends1, $m = "unicast packet", strlen($m), 0, "::1", 3000);
|
||||
var_dump($r);
|
||||
}
|
||||
if ($i == 8) {
|
||||
/*echo "joining source group\n";
|
||||
$so = socket_set_option($s, $level, MCAST_JOIN_SOURCE_GROUP, array(
|
||||
"group" => $mcastaddr,
|
||||
"interface" => $interface,
|
||||
"source" => $sblock,
|
||||
));
|
||||
var_dump($so);*/
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
creating send socket
|
||||
resource(%d) of type (Socket)
|
||||
creating receive socket
|
||||
resource(%d) of type (Socket)
|
||||
bool(true)
|
||||
bool(true)
|
||||
int(14)
|
||||
int(14)
|
||||
string(14) "testing packet"
|
||||
string(%d) "%s"
|
||||
int(14)
|
||||
1> initial packet
|
||||
leaving group
|
||||
bool(true)
|
||||
int(20)
|
||||
int(14)
|
||||
2> unicast packet
|
||||
re-joining group
|
||||
bool(true)
|
||||
int(12)
|
||||
3> mcast packet
|
||||
blocking source
|
||||
bool(true)
|
||||
int(31)
|
||||
int(14)
|
||||
4> unicast packet
|
||||
unblocking source
|
||||
bool(true)
|
||||
int(12)
|
||||
5> mcast packet
|
||||
leaving group
|
||||
bool(true)
|
||||
int(20)
|
||||
int(14)
|
||||
6> unicast packet
|
||||
joining source group
|
||||
bool(true)
|
||||
int(32)
|
||||
7> mcast packet from desired source
|
||||
leaving source group
|
||||
bool(true)
|
||||
int(20)
|
||||
int(14)
|
||||
8> unicast packet
|
||||
@@ -0,0 +1,67 @@
|
||||
<?php
|
||||
include __DIR__."/mcast_helpers.php.inc";
|
||||
$domain = AF_INET6;
|
||||
$level = IPPROTO_IPV6;
|
||||
$interface = 0;
|
||||
$mcastaddr = 'ff01::114';
|
||||
$sblock = "?";
|
||||
|
||||
echo "creating send socket\n";
|
||||
$sends1 = socket_create($domain, SOCK_DGRAM, SOL_UDP) or die("err");
|
||||
var_dump($sends1);
|
||||
|
||||
echo "creating receive socket\n";
|
||||
$s = socket_create($domain, SOCK_DGRAM, SOL_UDP) or die("err");
|
||||
var_dump($s);
|
||||
$br = socket_bind($s, '::0', 3000) or die("err");
|
||||
var_dump($br);
|
||||
|
||||
$so = socket_set_option($s, $level, MCAST_JOIN_GROUP, array(
|
||||
"group" => $mcastaddr,
|
||||
"interface" => $interface,
|
||||
)) or die("err");
|
||||
var_dump($so);
|
||||
|
||||
$r = socket_sendto($sends1, $m = "testing packet", strlen($m), 0, $mcastaddr, 3000);
|
||||
var_dump($r);
|
||||
checktimeout($s, 500);
|
||||
$r = socket_recvfrom($s, $str, 2000, 0, $from, $fromPort);
|
||||
var_dump($r, $str, $from);
|
||||
$sblock = $from;
|
||||
|
||||
$r = socket_sendto($sends1, $m = "initial packet", strlen($m), 0, $mcastaddr, 3000);
|
||||
var_dump($r);
|
||||
|
||||
$i = 0;
|
||||
checktimeout($s, 500);
|
||||
while (($str = socket_read($s, 3000, 500)) !== FALSE) {
|
||||
$i++;
|
||||
echo "$i> ", $str, "\n";
|
||||
|
||||
if ($i == 1) {
|
||||
echo "leaving group\n";
|
||||
$so = socket_set_option($s, $level, MCAST_LEAVE_GROUP, array(
|
||||
"group" => $mcastaddr,
|
||||
"interface" => $interface,
|
||||
));
|
||||
var_dump($so);
|
||||
$r = socket_sendto($sends1, $m = "ignored mcast packet", strlen($m), 0, $mcastaddr, 3000);
|
||||
var_dump($r);
|
||||
$r = socket_sendto($sends1, $m = "unicast packet", strlen($m), 0, "::1", 3000);
|
||||
var_dump($r);
|
||||
}
|
||||
if ($i == 2) {
|
||||
echo "re-joining group\n";
|
||||
$so = socket_set_option($s, $level, MCAST_JOIN_GROUP, array(
|
||||
"group" => $mcastaddr,
|
||||
"interface" => $interface,
|
||||
));
|
||||
var_dump($so);
|
||||
$r = socket_sendto($sends1, $m = "mcast packet", strlen($m), 0, $mcastaddr, 3000);
|
||||
var_dump($r);
|
||||
}
|
||||
if ($i == 3) {
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
creating send socket
|
||||
resource(%d) of type (Socket)
|
||||
creating receive socket
|
||||
resource(%d) of type (Socket)
|
||||
bool(true)
|
||||
bool(true)
|
||||
int(14)
|
||||
int(14)
|
||||
string(14) "testing packet"
|
||||
string(%d) "%s"
|
||||
int(14)
|
||||
1> initial packet
|
||||
leaving group
|
||||
bool(true)
|
||||
int(20)
|
||||
int(14)
|
||||
2> unicast packet
|
||||
re-joining group
|
||||
bool(true)
|
||||
int(12)
|
||||
3> mcast packet
|
||||
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
$domain = AF_INET6;
|
||||
$level = IPPROTO_IPV6;
|
||||
$s = socket_create($domain, SOCK_DGRAM, SOL_UDP) or die("err");
|
||||
|
||||
echo "Setting IPV6_MULTICAST_TTL\n";
|
||||
$r = socket_set_option($s, $level, IPV6_MULTICAST_HOPS, 9);
|
||||
var_dump($r);
|
||||
$r = socket_get_option($s, $level, IPV6_MULTICAST_HOPS);
|
||||
var_dump($r);
|
||||
echo "\n";
|
||||
|
||||
echo "Setting IPV6_MULTICAST_LOOP\n";
|
||||
$r = socket_set_option($s, $level, IPV6_MULTICAST_LOOP, 0);
|
||||
var_dump($r);
|
||||
$r = socket_get_option($s, $level, IPV6_MULTICAST_LOOP);
|
||||
var_dump($r);
|
||||
$r = socket_set_option($s, $level, IPV6_MULTICAST_LOOP, 1);
|
||||
var_dump($r);
|
||||
$r = socket_get_option($s, $level, IPV6_MULTICAST_LOOP);
|
||||
var_dump($r);
|
||||
echo "\n";
|
||||
|
||||
echo "Setting IPV6_MULTICAST_IF\n";
|
||||
echo "interface 0:\n";
|
||||
$r = socket_set_option($s, $level, IPV6_MULTICAST_IF, 0);
|
||||
var_dump($r);
|
||||
$r = socket_get_option($s, $level, IPV6_MULTICAST_IF);
|
||||
var_dump($r);
|
||||
echo "interface 1:\n";
|
||||
$r = socket_set_option($s, $level, IPV6_MULTICAST_IF, 1);
|
||||
var_dump($r);
|
||||
$r = socket_get_option($s, $level, IPV6_MULTICAST_IF);
|
||||
var_dump($r);
|
||||
echo "\n";
|
||||
@@ -0,0 +1,17 @@
|
||||
Setting IPV6_MULTICAST_TTL
|
||||
bool(true)
|
||||
int(9)
|
||||
|
||||
Setting IPV6_MULTICAST_LOOP
|
||||
bool(true)
|
||||
int(0)
|
||||
bool(true)
|
||||
int(1)
|
||||
|
||||
Setting IPV6_MULTICAST_IF
|
||||
interface 0:
|
||||
bool(true)
|
||||
int(0)
|
||||
interface 1:
|
||||
bool(true)
|
||||
int(1)
|
||||
@@ -0,0 +1,2 @@
|
||||
<?php
|
||||
var_dump(socket_accept(null));
|
||||
@@ -0,0 +1,2 @@
|
||||
HipHop Warning: %a
|
||||
NULL
|
||||
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
$rand = rand(1,999);
|
||||
$s_c = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
|
||||
$s_bind = socket_bind($s_c, '0.0.0.0', 31330+$rand);
|
||||
var_dump($s_bind);
|
||||
|
||||
// Connect to destination address
|
||||
$s_conn = socket_connect($s_c, 'www.php.net', 80);
|
||||
var_dump($s_conn);
|
||||
|
||||
// Write
|
||||
$request = 'GET / HTTP/1.1' . "\r\n";
|
||||
$s_write = socket_write($s_c, $request);
|
||||
var_dump($s_write);
|
||||
|
||||
// Close
|
||||
$s_close = socket_close($s_c);
|
||||
var_dump($s_close);
|
||||
?>
|
||||
@@ -0,0 +1,4 @@
|
||||
bool(true)
|
||||
bool(true)
|
||||
int(16)
|
||||
NULL
|
||||
@@ -0,0 +1,3 @@
|
||||
<?php
|
||||
$sock = socket_create_listen(80);<?php
|
||||
unlink(dirname(__FILE__) . '/006_root_check.tmp');
|
||||
@@ -0,0 +1 @@
|
||||
HipHop Warning: %a
|
||||
@@ -0,0 +1,4 @@
|
||||
<?php
|
||||
$sock = socket_create_listen(31338);
|
||||
socket_getsockname($sock, $addr, $port);
|
||||
var_dump($addr, $port);
|
||||
@@ -0,0 +1,2 @@
|
||||
string(9) "127.0.0.1"
|
||||
int(31338)
|
||||
@@ -0,0 +1,3 @@
|
||||
<?php
|
||||
$sock1 = socket_create_listen(array());
|
||||
$sock2 = socket_create_listen(31337, array());
|
||||
@@ -0,0 +1,2 @@
|
||||
HipHop Warning: %a
|
||||
HipHop Warning: %a
|
||||
@@ -0,0 +1,8 @@
|
||||
<?php
|
||||
$rand = rand(1,999);
|
||||
$s_c_l = socket_create_listen();
|
||||
var_dump($s_c_l);
|
||||
if ($s_c_l !== false) {
|
||||
@socket_close($s_c_l);
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,2 @@
|
||||
HipHop Warning: %a
|
||||
NULL
|
||||
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
$rand = rand(1,999);
|
||||
// wrong parameter count
|
||||
$s_c_l = socket_create_listen(31330+$rand);
|
||||
var_dump($s_c_l);
|
||||
// default invocation
|
||||
$s_c_l2 = socket_create_listen(31330+$rand);
|
||||
var_dump($s_c_l2);
|
||||
socket_close($s_c_l2);
|
||||
socket_close($s_c_l);
|
||||
?>
|
||||
@@ -0,0 +1,4 @@
|
||||
resource(%i) of type (Socket)
|
||||
HipHop Warning: %a
|
||||
bool(false)
|
||||
HipHop Warning: %a
|
||||
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
var_dump(socket_create_pair(AF_INET, null, null));
|
||||
|
||||
$domain = 'unknown';
|
||||
var_dump(socket_create_pair($domain, SOCK_STREAM, 0, $sockets));
|
||||
|
||||
var_dump(socket_create_pair(AF_INET, null, null, $sockets));
|
||||
|
||||
var_dump(socket_create_pair(31337, null, null, $sockets));
|
||||
|
||||
var_dump(socket_create_pair(AF_INET, 31337, 0, $sockets));
|
||||
@@ -0,0 +1,9 @@
|
||||
HipHop Warning: %a
|
||||
NULL
|
||||
HipHop Warning: %a
|
||||
NULL
|
||||
bool(true)
|
||||
HipHop Warning: %a
|
||||
bool(true)
|
||||
HipHop Warning: %a
|
||||
bool(true)
|
||||
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
var_dump(socket_create_pair(AF_INET, null, null));
|
||||
|
||||
$domain = 'unknown';
|
||||
var_dump(socket_create_pair($domain, SOCK_STREAM, 0, $sockets));
|
||||
|
||||
var_dump(socket_create_pair(AF_INET, null, null, $sockets));
|
||||
|
||||
var_dump(socket_create_pair(31337, null, null, $sockets));
|
||||
|
||||
var_dump(socket_create_pair(AF_INET, 31337, 0, $sockets));
|
||||
@@ -0,0 +1,12 @@
|
||||
HipHop Warning: %a
|
||||
NULL
|
||||
HipHop Warning: %a
|
||||
NULL
|
||||
HipHop Warning: %a
|
||||
bool(false)
|
||||
HipHop Warning: %a
|
||||
HipHop Warning: %a
|
||||
bool(false)
|
||||
HipHop Warning: %a
|
||||
HipHop Warning: %a
|
||||
bool(false)
|
||||
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
$sockets = array();
|
||||
if (strtolower(substr(PHP_OS, 0, 3)) == 'win') {
|
||||
$domain = AF_INET;
|
||||
} else {
|
||||
$domain = AF_UNIX;
|
||||
}
|
||||
socket_create_pair($domain, SOCK_STREAM, 0, $sockets);
|
||||
var_dump($sockets);
|
||||
@@ -0,0 +1,6 @@
|
||||
array(2) {
|
||||
[0]=>
|
||||
resource(4) of type (Socket)
|
||||
[1]=>
|
||||
resource(5) of type (Socket)
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
/* Bind and connect sockets to localhost */
|
||||
$localhost = '::1';
|
||||
|
||||
/* Hold the port associated to address */
|
||||
$port = 31337;
|
||||
|
||||
/* Setup socket server */
|
||||
$server = socket_create(AF_INET6, SOCK_STREAM, getprotobyname('tcp'));
|
||||
if (!$server) {
|
||||
die('Unable to create AF_INET6 socket [server]');
|
||||
}
|
||||
|
||||
if (!socket_bind($server, $localhost, $port)) {
|
||||
die('Unable to bind to '.$localhost.':'.$port);
|
||||
}
|
||||
if (!socket_listen($server, 2)) {
|
||||
die('Unable to listen on socket');
|
||||
}
|
||||
|
||||
/* Connect to it */
|
||||
$client = socket_create(AF_INET6, SOCK_STREAM, getprotobyname('tcp'));
|
||||
if (!$client) {
|
||||
die('Unable to create AF_INET6 socket [client]');
|
||||
}
|
||||
if (!socket_connect($client, $localhost, $port)) {
|
||||
die('Unable to connect to server socket');
|
||||
}
|
||||
|
||||
/* Accept that connection */
|
||||
$socket = socket_accept($server);
|
||||
if (!$socket) {
|
||||
die('Unable to accept connection');
|
||||
}
|
||||
|
||||
if (!socket_getpeername($client, $address, $port)) {
|
||||
die('Unable to retrieve peer name');
|
||||
}
|
||||
var_dump($address, $port);
|
||||
|
||||
socket_close($client);
|
||||
socket_close($socket);
|
||||
socket_close($server);
|
||||
?>
|
||||
@@ -0,0 +1,2 @@
|
||||
string(3) "::1"
|
||||
int(31337)
|
||||
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
$rand = rand(1,999);
|
||||
$s_c = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
|
||||
$s_bind = socket_bind($s_c, '0.0.0.0', 31330+$rand);
|
||||
var_dump($s_bind);
|
||||
|
||||
// Connect to destination address
|
||||
$s_conn = socket_getsockname($s_c, $ip, $port);
|
||||
var_dump($s_conn);
|
||||
var_dump($ip);
|
||||
var_dump($port);
|
||||
socket_close($s_c);
|
||||
?>
|
||||
@@ -0,0 +1,4 @@
|
||||
bool(true)
|
||||
bool(true)
|
||||
string(7) "0.0.0.0"
|
||||
int(%i)
|
||||
@@ -0,0 +1,14 @@
|
||||
<?php
|
||||
|
||||
$domain = (strtoupper(substr(PHP_OS, 0, 3) == 'WIN') ? STREAM_PF_INET : STREAM_PF_UNIX);
|
||||
$s = stream_socket_pair($domain, STREAM_SOCK_STREAM, 0);
|
||||
|
||||
$s0 = reset($s);
|
||||
$s1 = next($s);
|
||||
|
||||
$sock = socket_import_stream($s0);
|
||||
var_dump($sock);
|
||||
socket_write($sock, "test message");
|
||||
socket_close($sock);
|
||||
|
||||
var_dump(stream_get_contents($s1));
|
||||
@@ -0,0 +1,2 @@
|
||||
resource(%d) of type (Socket)
|
||||
string(12) "test message"
|
||||
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
|
||||
var_dump(socket_import_stream());
|
||||
var_dump(socket_import_stream(1, 2));
|
||||
var_dump(socket_import_stream(1));
|
||||
var_dump(socket_import_stream(new stdclass));
|
||||
var_dump(socket_import_stream(fopen(__FILE__, "rb")));
|
||||
var_dump(socket_import_stream(socket_create(AF_INET, SOCK_DGRAM, SOL_UDP)));
|
||||
$s = stream_socket_server("udp://127.0.0.1:58392", $errno, $errstr, STREAM_SERVER_BIND);
|
||||
var_dump($s);
|
||||
var_dump(fclose($s));
|
||||
var_dump(socket_import_stream($s));
|
||||
|
||||
|
||||
echo "Done.";
|
||||
@@ -0,0 +1,17 @@
|
||||
HipHop Warning: %a
|
||||
NULL
|
||||
HipHop Warning: %a
|
||||
NULL
|
||||
HipHop Warning: %a
|
||||
NULL
|
||||
HipHop Warning: %a
|
||||
NULL
|
||||
HipHop Warning: %a
|
||||
bool(false)
|
||||
HipHop Warning: %a
|
||||
bool(false)
|
||||
resource(%d) of type (stream)
|
||||
bool(true)
|
||||
HipHop Warning: %a
|
||||
bool(false)
|
||||
Done.
|
||||
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
$stream = stream_socket_server("udp://0.0.0.0:58381", $errno, $errstr, STREAM_SERVER_BIND);
|
||||
$sock = socket_import_stream($stream);
|
||||
var_dump($sock);
|
||||
$so = socket_set_option($sock, IPPROTO_IP, MCAST_JOIN_GROUP, array(
|
||||
"group" => '224.0.0.23',
|
||||
"interface" => "lo",
|
||||
));
|
||||
var_dump($so);
|
||||
|
||||
$sendsock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
|
||||
var_dump($sendsock);
|
||||
$br = socket_bind($sendsock, '127.0.0.1');
|
||||
$so = socket_sendto($sendsock, $m = "my message", strlen($m), 0, "224.0.0.23", 58381);
|
||||
var_dump($so);
|
||||
|
||||
stream_set_blocking($stream, 0);
|
||||
var_dump(fread($stream, strlen($m)));
|
||||
echo "Done.\n";
|
||||
@@ -0,0 +1,6 @@
|
||||
resource(%d) of type (Socket)
|
||||
bool(true)
|
||||
resource(%d) of type (Socket)
|
||||
int(10)
|
||||
string(10) "my message"
|
||||
Done.
|
||||
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
|
||||
function test($stream, $sock) {
|
||||
if ($stream !== null) {
|
||||
echo "stream_set_blocking ";
|
||||
print_r(stream_set_blocking($stream, 0));
|
||||
echo "\n";
|
||||
}
|
||||
if ($sock !== null) {
|
||||
echo "socket_set_block ";
|
||||
print_r(socket_set_block($sock));
|
||||
echo "\n";
|
||||
echo "socket_get_option ";
|
||||
print_r(socket_get_option($sock, SOL_SOCKET, SO_TYPE));
|
||||
echo "\n";
|
||||
}
|
||||
echo "\n";
|
||||
}
|
||||
|
||||
echo "normal\n";
|
||||
$stream0 = stream_socket_server("udp://0.0.0.0:58380", $errno, $errstr, STREAM_SERVER_BIND);
|
||||
$sock0 = socket_import_stream($stream0);
|
||||
test($stream0, $sock0);
|
||||
|
||||
echo "\nunset stream\n";
|
||||
$stream1 = stream_socket_server("udp://0.0.0.0:58381", $errno, $errstr, STREAM_SERVER_BIND);
|
||||
$sock1 = socket_import_stream($stream1);
|
||||
unset($stream1);
|
||||
test(null, $sock1);
|
||||
|
||||
echo "\nunset socket\n";
|
||||
$stream2 = stream_socket_server("udp://0.0.0.0:58382", $errno, $errstr, STREAM_SERVER_BIND);
|
||||
$sock2 = socket_import_stream($stream2);
|
||||
unset($sock2);
|
||||
test($stream2, null);
|
||||
|
||||
echo "\nclose stream\n";
|
||||
$stream3 = stream_socket_server("udp://0.0.0.0:58383", $errno, $errstr, STREAM_SERVER_BIND);
|
||||
$sock3 = socket_import_stream($stream3);
|
||||
fclose($stream3);
|
||||
test($stream3, $sock3);
|
||||
|
||||
echo "\nclose socket\n";
|
||||
$stream4 = stream_socket_server("udp://0.0.0.0:58384", $errno, $errstr, STREAM_SERVER_BIND);
|
||||
$sock4 = socket_import_stream($stream4);
|
||||
socket_close($sock4);
|
||||
test($stream4, $sock4);
|
||||
|
||||
echo "Done.\n";
|
||||
@@ -0,0 +1,41 @@
|
||||
normal
|
||||
stream_set_blocking 1
|
||||
socket_set_block 1
|
||||
socket_get_option 2
|
||||
|
||||
|
||||
unset stream
|
||||
socket_set_block 1
|
||||
socket_get_option 2
|
||||
|
||||
|
||||
unset socket
|
||||
stream_set_blocking 1
|
||||
|
||||
|
||||
close stream
|
||||
stream_set_blocking
|
||||
HipHop Warning: %a
|
||||
|
||||
socket_set_block
|
||||
HipHop Warning: %a
|
||||
in %ssocket_import_stream-4-win.php on line %d
|
||||
|
||||
socket_get_option
|
||||
HipHop Warning: %a
|
||||
in %ssocket_import_stream-4-win.php on line %d
|
||||
|
||||
|
||||
|
||||
close socket
|
||||
stream_set_blocking
|
||||
HipHop Warning: %a
|
||||
|
||||
socket_set_block
|
||||
HipHop Warning: %a
|
||||
|
||||
socket_get_option
|
||||
HipHop Warning: %a
|
||||
|
||||
|
||||
Done.
|
||||
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
|
||||
function test($stream, $sock) {
|
||||
if ($stream !== null) {
|
||||
echo "stream_set_blocking ";
|
||||
print_r(stream_set_blocking($stream, 0));
|
||||
echo "\n";
|
||||
}
|
||||
if ($sock !== null) {
|
||||
echo "socket_set_block ";
|
||||
print_r(socket_set_block($sock));
|
||||
echo "\n";
|
||||
echo "socket_get_option ";
|
||||
print_r(socket_get_option($sock, SOL_SOCKET, SO_TYPE));
|
||||
echo "\n";
|
||||
}
|
||||
echo "\n";
|
||||
}
|
||||
|
||||
echo "normal\n";
|
||||
$stream0 = stream_socket_server("udp://0.0.0.0:58380", $errno, $errstr, STREAM_SERVER_BIND);
|
||||
$sock0 = socket_import_stream($stream0);
|
||||
test($stream0, $sock0);
|
||||
|
||||
echo "\nunset stream\n";
|
||||
$stream1 = stream_socket_server("udp://0.0.0.0:58381", $errno, $errstr, STREAM_SERVER_BIND);
|
||||
$sock1 = socket_import_stream($stream1);
|
||||
unset($stream1);
|
||||
test(null, $sock1);
|
||||
|
||||
echo "\nunset socket\n";
|
||||
$stream2 = stream_socket_server("udp://0.0.0.0:58382", $errno, $errstr, STREAM_SERVER_BIND);
|
||||
$sock2 = socket_import_stream($stream2);
|
||||
unset($sock2);
|
||||
test($stream2, null);
|
||||
|
||||
echo "\nclose stream\n";
|
||||
$stream3 = stream_socket_server("udp://0.0.0.0:58383", $errno, $errstr, STREAM_SERVER_BIND);
|
||||
$sock3 = socket_import_stream($stream3);
|
||||
fclose($stream3);
|
||||
test($stream3, $sock3);
|
||||
|
||||
echo "\nclose socket\n";
|
||||
$stream4 = stream_socket_server("udp://0.0.0.0:58384", $errno, $errstr, STREAM_SERVER_BIND);
|
||||
$sock4 = socket_import_stream($stream4);
|
||||
socket_close($sock4);
|
||||
test($stream4, $sock4);
|
||||
|
||||
echo "Done.\n";
|
||||
@@ -0,0 +1,39 @@
|
||||
normal
|
||||
stream_set_blocking 1
|
||||
socket_set_block 1
|
||||
socket_get_option 2
|
||||
|
||||
|
||||
unset stream
|
||||
socket_set_block 1
|
||||
socket_get_option 2
|
||||
|
||||
|
||||
unset socket
|
||||
stream_set_blocking 1
|
||||
|
||||
|
||||
close stream
|
||||
stream_set_blocking
|
||||
HipHop Warning: %a
|
||||
|
||||
socket_set_block
|
||||
HipHop Warning: %a
|
||||
|
||||
socket_get_option
|
||||
HipHop Warning: %a
|
||||
|
||||
|
||||
|
||||
close socket
|
||||
stream_set_blocking
|
||||
HipHop Warning: %a
|
||||
|
||||
socket_set_block
|
||||
HipHop Warning: %a
|
||||
|
||||
socket_get_option
|
||||
HipHop Warning: %a
|
||||
|
||||
|
||||
Done.
|
||||
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
$stream0 = stream_socket_server("udp://0.0.0.0:58380", $errno, $errstr, STREAM_SERVER_BIND);
|
||||
$sock0 = socket_import_stream($stream0);
|
||||
leak_variable($stream0, true);
|
||||
|
||||
$stream1 = stream_socket_server("udp://0.0.0.0:58381", $errno, $errstr, STREAM_SERVER_BIND);
|
||||
$sock1 = socket_import_stream($stream1);
|
||||
leak_variable($sock1, true);
|
||||
|
||||
echo "Done.\n";
|
||||
@@ -0,0 +1 @@
|
||||
Done.
|
||||
@@ -0,0 +1,4 @@
|
||||
<?php
|
||||
var_dump(socket_listen(null));
|
||||
$socket = socket_create(AF_UNIX, SOCK_STREAM, 0);
|
||||
var_dump(socket_listen($socket));
|
||||
@@ -0,0 +1,4 @@
|
||||
HipHop Warning: %a
|
||||
NULL
|
||||
HipHop Warning: %a
|
||||
bool(false)
|
||||
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
$sockets = array();
|
||||
$domain = AF_INET;
|
||||
socket_create_pair($domain, SOCK_STREAM, 0, $sockets);
|
||||
|
||||
$write = null;
|
||||
$except = null;
|
||||
$time = -1;
|
||||
var_dump(socket_select($sockets, $write, $except, $time));
|
||||
@@ -0,0 +1 @@
|
||||
int(0)
|
||||
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
$sockets = null;
|
||||
$write = null;
|
||||
$except = null;
|
||||
$time = 0;
|
||||
var_dump(socket_select($sockets, $write, $except, $time));
|
||||
socket_select($sockets, $write, $except);
|
||||
@@ -0,0 +1,3 @@
|
||||
HipHop Warning: %a
|
||||
bool(false)
|
||||
HipHop Warning: %a
|
||||
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
|
||||
if (!$socket) {
|
||||
die('Unable to create AF_INET socket');
|
||||
}
|
||||
if (!socket_set_nonblock($socket)) {
|
||||
die('Unable to set nonblocking mode for socket');
|
||||
}
|
||||
socket_recvfrom($socket, $buf, 12, 0, $from, $port); // cause warning
|
||||
$address = '127.0.0.1';
|
||||
socket_sendto($socket, '', 1, 0, $address); // cause warning
|
||||
if (!socket_bind($socket, $address, 1223)) {
|
||||
die("Unable to bind to $address:1223");
|
||||
}
|
||||
|
||||
$msg = "Ping!";
|
||||
$len = strlen($msg);
|
||||
$bytes_sent = socket_sendto($socket, $msg, $len, 0, $address, 1223);
|
||||
if ($bytes_sent == -1) {
|
||||
die('An error occurred while sending to the socket');
|
||||
} else if ($bytes_sent != $len) {
|
||||
die($bytes_sent . ' bytes have been sent instead of the ' . $len . ' bytes expected');
|
||||
}
|
||||
|
||||
$from = "";
|
||||
$port = 0;
|
||||
socket_recvfrom($socket, $buf, 12, 0); // cause warning
|
||||
socket_recvfrom($socket, $buf, 12, 0, $from); // cause warning
|
||||
$bytes_received = socket_recvfrom($socket, $buf, 12, 0, $from, $port);
|
||||
if ($bytes_received == -1) {
|
||||
die('An error occurred while receiving from the socket');
|
||||
} else if ($bytes_received != $len) {
|
||||
die($bytes_received . ' bytes have been received instead of the ' . $len . ' bytes expected');
|
||||
}
|
||||
echo "Received $buf from remote address $from and remote port $port" . PHP_EOL;
|
||||
|
||||
socket_close($socket);
|
||||
@@ -0,0 +1,5 @@
|
||||
HipHop Warning: %a
|
||||
HipHop Warning: %a
|
||||
HipHop Warning: %a
|
||||
HipHop Warning: %a
|
||||
Received Ping! from remote address 127.0.0.1 and remote port 1223
|
||||
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
$socket = socket_create(AF_INET6, SOCK_DGRAM, SOL_UDP);
|
||||
if (!$socket) {
|
||||
die('Unable to create AF_INET6 socket');
|
||||
}
|
||||
if (!socket_set_nonblock($socket)) {
|
||||
die('Unable to set nonblocking mode for socket');
|
||||
}
|
||||
socket_recvfrom($socket, $buf, 12, 0, $from, $port); // cause warning
|
||||
$address = '::1';
|
||||
socket_sendto($socket, '', 1, 0, $address); // cause warning
|
||||
if (!socket_bind($socket, $address, 1223)) {
|
||||
die("Unable to bind to $address:1223");
|
||||
}
|
||||
|
||||
$msg = "Ping!";
|
||||
$len = strlen($msg);
|
||||
$bytes_sent = socket_sendto($socket, $msg, $len, 0, $address, 1223);
|
||||
if ($bytes_sent == -1) {
|
||||
die('An error occurred while sending to the socket');
|
||||
} else if ($bytes_sent != $len) {
|
||||
die($bytes_sent . ' bytes have been sent instead of the ' . $len . ' bytes expected');
|
||||
}
|
||||
|
||||
$from = "";
|
||||
$port = 0;
|
||||
socket_recvfrom($socket, $buf, 12, 0); // cause warning
|
||||
socket_recvfrom($socket, $buf, 12, 0, $from); // cause warning
|
||||
$bytes_received = socket_recvfrom($socket, $buf, 12, 0, $from, $port);
|
||||
if ($bytes_received == -1) {
|
||||
die('An error occurred while receiving from the socket');
|
||||
} else if ($bytes_received != $len) {
|
||||
die($bytes_received . ' bytes have been received instead of the ' . $len . ' bytes expected');
|
||||
}
|
||||
echo "Received $buf from remote address $from and remote port $port" . PHP_EOL;
|
||||
|
||||
socket_close($socket);
|
||||
@@ -0,0 +1,6 @@
|
||||
HipHop Warning: %a
|
||||
in hphp/test/zend/bad/ext-sockets/socket_sentto_recvfrom_ipv6_udp-win32.php on line %d
|
||||
HipHop Warning: %a
|
||||
HipHop Warning: %a
|
||||
HipHop Warning: %a
|
||||
Received Ping! from remote address ::1 and remote port 1223
|
||||
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
$socket = socket_create(AF_INET6, SOCK_DGRAM, SOL_UDP);
|
||||
if (!$socket) {
|
||||
die('Unable to create AF_INET6 socket');
|
||||
}
|
||||
if (!socket_set_nonblock($socket)) {
|
||||
die('Unable to set nonblocking mode for socket');
|
||||
}
|
||||
socket_recvfrom($socket, $buf, 12, 0, $from, $port); // cause warning
|
||||
$address = '::1';
|
||||
socket_sendto($socket, '', 1, 0, $address); // cause warning
|
||||
if (!socket_bind($socket, $address, 1223)) {
|
||||
die("Unable to bind to $address:1223");
|
||||
}
|
||||
|
||||
$msg = "Ping!";
|
||||
$len = strlen($msg);
|
||||
$bytes_sent = socket_sendto($socket, $msg, $len, 0, $address, 1223);
|
||||
if ($bytes_sent == -1) {
|
||||
die('An error occurred while sending to the socket');
|
||||
} else if ($bytes_sent != $len) {
|
||||
die($bytes_sent . ' bytes have been sent instead of the ' . $len . ' bytes expected');
|
||||
}
|
||||
|
||||
$from = "";
|
||||
$port = 0;
|
||||
socket_recvfrom($socket, $buf, 12, 0); // cause warning
|
||||
socket_recvfrom($socket, $buf, 12, 0, $from); // cause warning
|
||||
$bytes_received = socket_recvfrom($socket, $buf, 12, 0, $from, $port);
|
||||
if ($bytes_received == -1) {
|
||||
die('An error occurred while receiving from the socket');
|
||||
} else if ($bytes_received != $len) {
|
||||
die($bytes_received . ' bytes have been received instead of the ' . $len . ' bytes expected');
|
||||
}
|
||||
echo "Received $buf from remote address $from and remote port $port" . PHP_EOL;
|
||||
|
||||
socket_close($socket);
|
||||
@@ -0,0 +1,5 @@
|
||||
HipHop Warning: %a
|
||||
HipHop Warning: %a
|
||||
HipHop Warning: %a
|
||||
HipHop Warning: %a
|
||||
Received Ping! from remote address ::1 and remote port 1223
|
||||
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
$socket = socket_create_listen(31339);
|
||||
var_dump(socket_set_block($socket));
|
||||
socket_close($socket);
|
||||
|
||||
$socket2 = socket_create_listen(31340);
|
||||
socket_close($socket2);
|
||||
var_dump(socket_set_block($socket2));
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,3 @@
|
||||
bool(true)
|
||||
HipHop Warning: %a
|
||||
bool(false)
|
||||
@@ -0,0 +1,3 @@
|
||||
<?php
|
||||
socket_set_block(array());
|
||||
?>
|
||||
@@ -0,0 +1 @@
|
||||
HipHop Warning: %a
|
||||
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
$socket = socket_create_listen(31339);
|
||||
var_dump(socket_set_nonblock($socket));
|
||||
socket_close($socket);
|
||||
|
||||
$socket2 = socket_create_listen(31340);
|
||||
socket_close($socket2);
|
||||
var_dump(socket_set_nonblock($socket2));
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,3 @@
|
||||
bool(true)
|
||||
HipHop Warning: %a
|
||||
bool(false)
|
||||
@@ -0,0 +1,3 @@
|
||||
<?php
|
||||
$socket = socket_set_nonblock(array());
|
||||
?>
|
||||
@@ -0,0 +1 @@
|
||||
HipHop Warning: %a
|
||||
@@ -0,0 +1,8 @@
|
||||
<?php
|
||||
$rand = rand(1,999);
|
||||
$s_c_l = socket_create_listen(31330+$rand);
|
||||
socket_set_nonblock($s_c_l);
|
||||
var_dump($s_c_l);
|
||||
#socket_accept($s_c_l);
|
||||
socket_close($s_c_l);
|
||||
?>
|
||||
@@ -0,0 +1 @@
|
||||
resource(%i) of type (Socket)
|
||||
@@ -0,0 +1,3 @@
|
||||
<?php
|
||||
var_dump('TCP_NODELAY');
|
||||
?>
|
||||
@@ -0,0 +1 @@
|
||||
string(11) "TCP_NODELAY"
|
||||
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
/* Setup socket server */
|
||||
$server = socket_create(AF_INET, SOCK_STREAM, getprotobyname('tcp'));
|
||||
if (!$server) {
|
||||
die('Unable to create AF_INET socket [server]');
|
||||
}
|
||||
if (!socket_bind($server, '127.0.0.1', 31337)) {
|
||||
die('Unable to bind to 127.0.0.1:31337');
|
||||
}
|
||||
if (!socket_listen($server, 2)) {
|
||||
die('Unable to listen on socket');
|
||||
}
|
||||
|
||||
/* Connect to it */
|
||||
$client = socket_create(AF_INET, SOCK_STREAM, getprotobyname('tcp'));
|
||||
if (!$client) {
|
||||
die('Unable to create AF_INET socket [client]');
|
||||
}
|
||||
if (!socket_connect($client, '127.0.0.1', 31337)) {
|
||||
die('Unable to connect to server socket');
|
||||
}
|
||||
|
||||
/* Accept that connection */
|
||||
$socket = socket_accept($server);
|
||||
if (!$socket) {
|
||||
die('Unable to accept connection');
|
||||
}
|
||||
|
||||
socket_write($client, "ABCdef123\n");
|
||||
|
||||
$data = socket_read($socket, 10, PHP_BINARY_READ);
|
||||
var_dump($data);
|
||||
|
||||
socket_close($client);
|
||||
socket_close($socket);
|
||||
socket_close($server);
|
||||
?>
|
||||
@@ -0,0 +1,2 @@
|
||||
string(10) "ABCdef123
|
||||
"
|
||||
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
$rand = rand(1,999);
|
||||
$s_c = socket_create_listen(31330+$rand);
|
||||
$s_w = socket_bind();
|
||||
var_dump($s_w);
|
||||
$s_w = socket_bind($s_c);
|
||||
var_dump($s_w);
|
||||
socket_close($s_c);
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,4 @@
|
||||
HipHop Warning: %a
|
||||
NULL
|
||||
HipHop Warning: %a
|
||||
NULL
|
||||
@@ -0,0 +1,5 @@
|
||||
<?php
|
||||
// wrong parameter count
|
||||
$s_c = socket_close();
|
||||
var_dump($s_c);
|
||||
?>
|
||||
@@ -0,0 +1,2 @@
|
||||
HipHop Warning: %a
|
||||
NULL
|
||||
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
$rand = rand(1,999);
|
||||
$s_c = socket_create_listen(31330+$rand);
|
||||
// wrong parameter count
|
||||
$s_w = socket_connect();
|
||||
$s_w = socket_connect($s_c);
|
||||
$s_w = socket_connect($s_c, '0.0.0.0');
|
||||
$s_w = socket_connect($s_c, '0.0.0.0', 31330+$rand);
|
||||
|
||||
socket_close($s_c);
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,4 @@
|
||||
HipHop Warning: %a
|
||||
HipHop Warning: %a
|
||||
HipHop Warning: %a
|
||||
HipHop Warning: %a
|
||||
@@ -0,0 +1,4 @@
|
||||
<?php
|
||||
$sock = socket_create_listen(31338);
|
||||
socket_getsockname($sock, $addr, $port);
|
||||
var_dump($addr, $port);
|
||||
@@ -0,0 +1,2 @@
|
||||
string(7) "0.0.0.0"
|
||||
int(31338)
|
||||
@@ -0,0 +1,5 @@
|
||||
<?php
|
||||
$s_w = socket_create();
|
||||
$s_w = socket_create(AF_INET);
|
||||
$s_w = socket_create(AF_INET, SOCK_STREAM);
|
||||
?>
|
||||
@@ -0,0 +1,3 @@
|
||||
HipHop Warning: %a
|
||||
HipHop Warning: %a
|
||||
HipHop Warning: %a
|
||||
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
$rand = rand(1,999);
|
||||
$s_c = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
|
||||
$s_bind = socket_bind($s_c, '0.0.0.0', 31330+$rand);
|
||||
var_dump($s_bind);
|
||||
|
||||
// Connect to destination address
|
||||
$s_peer = socket_getpeername($s_c, $ip, $port);
|
||||
var_dump($s_peer);
|
||||
var_dump($ip);
|
||||
var_dump($port);
|
||||
socket_close($s_c);
|
||||
?>
|
||||
@@ -0,0 +1,5 @@
|
||||
bool(true)
|
||||
HipHop Warning: %a
|
||||
bool(false)
|
||||
NULL
|
||||
NULL
|
||||
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
/* Bind and connect sockets to localhost */
|
||||
$localhost = '127.0.0.1';
|
||||
|
||||
/* Hold the port associated to address */
|
||||
$port = 31337;
|
||||
|
||||
/* Setup socket server */
|
||||
$server = socket_create(AF_INET, SOCK_STREAM, getprotobyname('tcp'));
|
||||
if (!$server) {
|
||||
die('Unable to create AF_INET socket [server]');
|
||||
}
|
||||
|
||||
if (!socket_bind($server, $localhost, $port)) {
|
||||
die('Unable to bind to '.$localhost.':'.$port);
|
||||
}
|
||||
if (!socket_listen($server, 2)) {
|
||||
die('Unable to listen on socket');
|
||||
}
|
||||
|
||||
/* Connect to it */
|
||||
$client = socket_create(AF_INET, SOCK_STREAM, getprotobyname('tcp'));
|
||||
if (!$client) {
|
||||
die('Unable to create AF_INET socket [client]');
|
||||
}
|
||||
if (!socket_connect($client, $localhost, $port)) {
|
||||
die('Unable to connect to server socket');
|
||||
}
|
||||
|
||||
/* Accept that connection */
|
||||
$socket = socket_accept($server);
|
||||
if (!$socket) {
|
||||
die('Unable to accept connection');
|
||||
}
|
||||
|
||||
if (!socket_getpeername($client, $address, $port)) {
|
||||
die('Unable to retrieve peer name');
|
||||
}
|
||||
var_dump($address, $port);
|
||||
|
||||
socket_close($client);
|
||||
socket_close($socket);
|
||||
socket_close($server);
|
||||
?>
|
||||
@@ -0,0 +1,2 @@
|
||||
string(9) "127.0.0.1"
|
||||
int(31337)
|
||||
@@ -0,0 +1,5 @@
|
||||
<?php
|
||||
// wrong parameter count
|
||||
$s_c = socket_listen();
|
||||
var_dump($s_c);
|
||||
?>
|
||||
@@ -0,0 +1,2 @@
|
||||
HipHop Warning: %a
|
||||
NULL
|
||||
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
$rand = rand(1,999);
|
||||
// wrong parameter count
|
||||
$s_c = socket_read();
|
||||
$s_c = socket_read(14);
|
||||
$s_c_l = socket_create_listen(31330+$rand);
|
||||
$s_c = socket_read($s_c_l, 25);
|
||||
socket_close($s_c_l);
|
||||
?>
|
||||
@@ -0,0 +1,3 @@
|
||||
HipHop Warning: %a
|
||||
HipHop Warning: %a
|
||||
HipHop Warning: %a
|
||||
Alguns arquivos não foram exibidos porque demasiados arquivos foram alterados neste diff Mostrar Mais
Referência em uma Nova Issue
Bloquear um usuário