阅读量:0
在PHP中,可以使用sockets扩展来实现多线程通信。下面是一个简单的示例代码,演示如何使用PHP sockets创建多线程通信:
<?php // 创建一个TCP套接字 $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); // 绑定套接字到指定IP和端口 socket_bind($socket, '127.0.0.1', 8888); // 开始监听连接 socket_listen($socket); // 创建一个子进程 $pid = pcntl_fork(); if ($pid == -1) { // 如果fork失败 die('unable to fork'); } else if ($pid) { // 父进程 // 接受客户端连接 $client = socket_accept($socket); // 读取客户端发送的数据 $data = socket_read($client, 1024); // 处理数据 echo 'Received data: ' . $data . PHP_EOL; // 关闭客户端连接和套接字 socket_close($client); socket_close($socket); } else { // 子进程 // 执行子进程的代码 // 创建另一个套接字 $child_socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); // 连接到父进程监听的套接字 socket_connect($child_socket, '127.0.0.1', 8888); // 发送数据到父进程 $data = 'Hello from child process'; socket_write($child_socket, $data, strlen($data)); // 关闭套接字 socket_close($child_socket); } ?>
在以上示例中,父进程创建了一个TCP套接字并开始监听连接。然后它创建了一个子进程,子进程连接到父进程的套接字并发送数据。父进程接受子进程发送的数据并进行处理。
请注意,这只是一个简单的示例代码,并未处理错误处理和异常情况。在实际应用中,您可能需要更多的代码来处理这些情况。