1

我想知道 PHP 是否可以通过 TCP 端口充当服务器?1GB RAM 服务器可以处理多少个 IDLE 连接?PHP 能否接收到一个 TCP 端口的多个连接(就像 apache 在端口 80 上所做的那样?)

如果我有一个客户端连接到 PHP 打开的套接字,我该如何向它发送数据?(例如 a.php 正在监听 5000 端口,某个客户端已连接,稍后 b.php 需要向该客户端发送一些内容,那么推送消息?)

或者我应该改用UDP吗?

4

1 回答 1

3

朋友,我的第一个建议是,即使 PHP 可以原生地做到这一点。PHP 不是实现 TCP 套接字服务器的最佳技术。原因是因为记住 php 对每个脚本都有 max_execution_time 并且使服务器永远运行将需要将此值设置为 0,这意味着永远。1gb ram 服务器可以处理的连接数量取决于每个 php 进程消耗多少 ram 和处理器。

但无论如何,如果您决定使用 php. 是的,您可以使用 php 构建一个异步 tcp 套接字服务器。

只需创建一个监听 5000 的主套接字(例如)。对于与此主套接字连接的每个客户端套接字,然后为每个传入连接创建一个具有随机空闲端口(由操作系统选择)的子套接字,您可以开始与子套接字交谈,同时释放主套接字以继续侦听另一个传入连接。

于 2012-09-26T16:33:33.157 回答