php怎么限制本服务器连接,PHP TCP套接字连接限制 – Windows服务器
发布日期:2021-06-24 13:06:13 浏览次数:2 分类:技术文章

本文共 1919 字,大约阅读时间需要 6 分钟。

我有一个奇怪的问题,我似乎无法找到解决方案或更接近我遇到的问题,

这是事情,我有一个通过php在命令行上运行的scoket脚本,它接受连接并从移动应用程序客户端读取json格式的数据,并在json中发送适当的响应.

一切正常,但连接数不超过256连接.

我想知道为什么会这样,我该如何解决呢?我已经这么多天了,但没有运气!

这是脚本片段

date_default_timezone_set("UTC");

$server = stream_socket_server("tcp://192.168.1.77:25003", $errno, $errorMessage);

if (!$server) {

die("$errstr ($errno)");

}

echo "Server started..";

echo "\r\n";

$client_socks = array();

while (true) {

//prepare readable sockets

$read_socks = $client_socks;

$read_socks[] = $server;

//start reading and use a large timeout

if (!stream_select ($read_socks, $write, $except, 10000)) {

die('something went wrong while selecting');

}

//new client

if (in_array($server, $read_socks)) {

$new_client = stream_socket_accept($server);

if ($new_client) {

//print remote client information, ip and port number

echo 'Connection accepted from ' . stream_socket_get_name($new_client, true);

echo "\r\n";

$client_socks[] = $new_client;

echo "Now there are total ". count($client_socks) . " clients";

echo "\r\n";

}

// echo stream_socket_get_name($new_client, true);

//delete the server socket from the read sockets

unset($read_socks[array_search($server, $read_socks)]);

}

$data = '';

$res = '';

//message from existing client

foreach($read_socks as $sock) {

stream_set_timeout($sock, 1000);

while($resp = fread($sock, 25000)) {

$data .= $resp;

if (strpos($data, "\n") !== false) {

break;

}

}

$info = stream_get_meta_data($sock);

if ($info['timed_out']) {

unset($client_socks[array_search($sock, $client_socks)]);

@fclose($sock);

echo 'Connection timed out!';

continue;

}

$client = stream_socket_get_name($sock, true);

if (!$data) {

unset($client_socks[array_search($sock, $client_socks)]);

@fclose($sock);

echo "$client got disconnected";

echo "\r\n";

continue;

}

//send the message back to client

$decode = json_decode($data);

$encode = json_encode($res);

fwrite($sock,$encode."\n");

}

}

我有一个Windows 7运行这个东西wamp 2.5运行PHP 5.5.12

转载地址:https://blog.csdn.net/weixin_32946543/article/details/115983528 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:java+模拟高并发测试,Java高并发秒杀API跑一个Test测试都不行
下一篇:php快速学习方法,PHP快速学习指南

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年04月23日 01时44分05秒