socket函数只是PHP扩展的一部分,编译PHP时必须在配置中添加
--enable-sockets
配置项来启用。
如果自带的PHP没有编译scokets扩展,可以下载相同版本的源码,进入ext/sockets
使用phpize
编译安装。
socket系列函数
socket服务端/客户端流程:
图中所示流程在任何编程语言里都是通用的。
server端
接下来我们写一个简单的单进程TCP服务器:
socket_tcp_server.php
<?php
/**
* Created by PhpStorm.
* User: 知乎: PHP进阶架构师(fhyblog)
* Date: 2018/6/23
*/
//参数domain: AF_INET,AF_INET6,AF_UNIX
//参数type: SOCK_STREAM,SOCK_DGRAM
//参数protocol: SOL_TCP,SOL_UDP
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if(!$socket) die("create server fail:".socket_strerror(socket_last_error())."\n");
//绑定
$ret