Return to fgets_socket_variation2.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / file |
1.1 misho 1: --TEST-- 2: fgets() over a socket with more than a buffer's worth of data 3: --CREDITS-- 4: Dave Kelsey <d_kelsey@uk.ibm.com> 5: --FILE-- 6: <?php 7: 8: // create a file 9: $filename = __FILE__ . ".tmp"; 10: $fd = fopen($filename, "w+"); 11: 12: // populate the file with lines of data 13: define("LINE_OF_DATA", "12345678\n"); 14: for ($i = 0; $i < 1000; $i++) { 15: fwrite($fd, LINE_OF_DATA); 16: } 17: fclose($fd); 18: 19: /* Setup socket server */ 20: $server = stream_socket_server('tcp://127.0.0.1:31337'); 21: 22: /* Connect to it */ 23: $client = fsockopen('tcp://127.0.0.1:31337'); 24: 25: if (!$client) { 26: die("Unable to create socket"); 27: } 28: 29: /* Accept that connection */ 30: $socket = stream_socket_accept($server); 31: 32: echo "Write data from the file:\n"; 33: $data = file_get_contents($filename); 34: unlink($filename); 35: 36: var_dump(fwrite($socket, $data)); 37: fclose($socket); 38: 39: echo "\nRead lines from the client\n"; 40: while ($line = fgets($client,256)) { 41: if (strcmp($line, LINE_OF_DATA) != 0) { 42: echo "Error - $line does not match " . LINE_OF_DATA; 43: break; 44: } 45: } 46: 47: echo "\nClose the server side socket and read the remaining data from the client\n"; 48: fclose($server); 49: while(!feof($client)) { 50: fread($client, 1); 51: } 52: 53: echo "done\n"; 54: 55: ?> 56: --EXPECT-- 57: Write data from the file: 58: int(9000) 59: 60: Read lines from the client 61: 62: Close the server side socket and read the remaining data from the client 63: done