1--TEST-- 2Testing stream_get_meta_data() "eof" field on a udp socket 3--FILE-- 4<?php 5 6/* Setup socket server */ 7$server = stream_socket_server('tcp://127.0.0.1:31334'); 8 9/* Connect to it */ 10$client = fsockopen('tcp://127.0.0.1:31334'); 11if (!$client) { 12 die("Unable to create socket"); 13} 14 15/* Accept that connection */ 16$socket = stream_socket_accept($server); 17 18echo "Write some data:\n"; 19fwrite($socket, "abcdefg\n1234567\nxyzxyz\n"); 20var_dump(stream_get_meta_data($client)); 21 22echo "\n\nRead a line from the client:\n"; 23fgets($client); 24var_dump(stream_get_meta_data($client)); 25 26echo "\n\nClose the server side socket and read the remaining data from the client:\n"; 27fclose($socket); 28fclose($server); 29while(!feof($client)) { 30 fread($client, 1); 31} 32var_dump(stream_get_meta_data($client)); 33 34fclose($client); 35 36?> 37--EXPECTF-- 38Write some data: 39array(7) { 40 ["timed_out"]=> 41 bool(false) 42 ["blocked"]=> 43 bool(true) 44 ["eof"]=> 45 bool(false) 46 ["stream_type"]=> 47 string(%d) "tcp_socke%s" 48 ["mode"]=> 49 string(2) "r+" 50 ["unread_bytes"]=> 51 int(%i) 52 ["seekable"]=> 53 bool(false) 54} 55 56 57Read a line from the client: 58array(7) { 59 ["timed_out"]=> 60 bool(false) 61 ["blocked"]=> 62 bool(true) 63 ["eof"]=> 64 bool(false) 65 ["stream_type"]=> 66 string(%d) "tcp_socke%s" 67 ["mode"]=> 68 string(2) "r+" 69 ["unread_bytes"]=> 70 int(%i) 71 ["seekable"]=> 72 bool(false) 73} 74 75 76Close the server side socket and read the remaining data from the client: 77array(7) { 78 ["timed_out"]=> 79 bool(false) 80 ["blocked"]=> 81 bool(true) 82 ["eof"]=> 83 bool(true) 84 ["stream_type"]=> 85 string(%d) "tcp_socke%s" 86 ["mode"]=> 87 string(2) "r+" 88 ["unread_bytes"]=> 89 int(%i) 90 ["seekable"]=> 91 bool(false) 92} 93