我有这样为什么PHP的fsockopen返回(资源暂时不可用)?
function listenForClients()
{
$this->serviceConnection = socket_create(AF_UNIX, SOCK_STREAM, 0);
socket_bind($this->serviceConnection, "\tmp\mysock", 0);
socket_listen($this->serviceConnection, 10000000);
while($clientSocket = socket_accept($this->serviceConnection))
{
$clientMessage = socket_read($clientSocket, 1024);
socket_close($clientSocket);
}
}
一个非常简单的服务器的PHP代码,然后,我有一个非常简单的客户端,这是否
for ($counter = 0; $counter <= 1000; $counter ++) {
$fp = fsockopen("unix///tmp/mysock", 0, $errno, $errstr);
if (!$fp){
echo "Error: Could not open socket connection at " . $counter . "\n";
exit;
}else{
fputs ($fp, "hello", strlen("hello"));
fclose($fp);
}
}
出于某种原因,连接的随机数(约后300-500)fsockopen将返回一个警告资源暂时不可用。一开始我在大约20-30个连接处发出警告。但是,一旦我在socket_listen中增加了backlog参数,它的性能就会好到300-500。我如何克服这一点?
什么是建立一个PHP服务器套接字每秒接受大量传入连接(持续)的方式。
谢谢!
完整的错误:
PHP Warning: fsockopen(): unable to connect to unix:///tmp/mysock:0 (Resource temporarily unavailable) in test.php on line 22
它目前设置为“无限制”; – erotsppa 2009-05-28 21:45:57
我应该更清楚。检查打开的文件限制(-n选项,或-a为所有限制)。 – 2009-05-29 00:21:13