此为用多进程简单实现对客户端同时与服务器socket通信,真正的开发的时候需要使用select/poll/epoll等方式!
说明:代码只能运行在Linux系统,每个连接开一个进程,可以使用telnet 127.0.0.0 4444进行多个客户端测试!
<?php $socket = socket_create(AF_INET, SOCK_STREAM, 0); socket_bind($socket, '0.0.0.0', 4444); socket_listen($socket); while ($client = socket_accept($socket)) { echo "New client connetced!\n"; $pid = pcntl_fork(); if ($pid == 0) { while ($msg = socket_read($client, 1024)) { echo "{$msg}\n"; $buf = $msg; socket_send($client, $buf, strlen($buf), 0); } exit(); } else if ($pid > 0) { continue; } }