Echo server: Difference between revisions

Added PHP implementation
m (Minor update to requirements)
(Added PHP implementation)
Line 563:
print "child dead\n";
close($sock);</lang>
 
=={{header|PHP}}==
<lang PHP>$socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
socket_bind($socket, '127.0.0.1', 12321);
socket_listen($socket);
 
$client_count = 0;
while (true){
if (($client = socket_accept($socket)) === false) continue;
$client_count++;
 
$client_name = 'Unknown';
socket_getpeername($client, $client_name);
echo "Client {$client_count} ({$client_name}) connected\n";
$pid = pcntl_fork();
if($pid == -1) die('Could not fork');
if($pid){
pcntl_waitpid(-1, $status, WNOHANG);
continue;
}
 
//In a child process
while(true){
if($input = socket_read($client, 1024)){
socket_write($client, $input);
} else {
socket_shutdown($client);
socket_close($client);
echo "Client {$client_count} ({$client_name}) disconnected\n";
exit();
}
}
}</lang>
 
=={{header|Python}}==
{{works with|Python|2.3 or above}}
Anonymous user