PHP多进程socket服务

此为用多进程简单实现对客户端同时与服务器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;
    }
}

猜你喜欢

转载自blog.csdn.net/panco_/article/details/89713834