创建一个简单的套接字
Creating a simple socket
我是 PHP 套接字的新手,目前我打算将它们用于一个简单的目的:我想在 Cron Job[=34= 之间传递信息] 和网络,因为我的主机阻止我使用 putenv
,这是我找到的最佳解决方案。
正在阅读 official documentation,这是我尝试做的事情:
$host = "localhost"; //or ssl://mydomain.com
$socket = fsockopen($host, 80, $no, $err,0);
if(!$err)
{
var_dump(fputs($socket, "random text"));
var_dump(filesize($socket));
var_dump(fgets($socket, filesize($socket)));
fclose($socket);
}
这是我得到的输出:
int(3)
NULL
bool(false)
所以看起来 fput
成功了,但由于某种原因它实际上并没有写任何东西(与 fwrite
和 fread
.
相同的结果
更新:
对于任何对此感兴趣的人,我发现 another solution which uses a completely different approach。
现在我只需要测试一下;如果它因任何原因不起作用,我将继续使用 peakle 的解决方案
你的脚本有一些错误,比如:fsockopen 中的零超时,提供 resource
到 filesize
函数,我修复了一些错误,如果你的服务器在 localhost
域上工作很好,它将输出正确的响应:
<?php
$host = 'localhost';
$socket = fsockopen($host, 80, $no, $err, 30);
if (!$err) {
var_dump(fputs($socket, "random text"));
while (!feof($socket)) {
echo fgets($socket, 4096);
}
fclose($socket);
}
:)
我是 PHP 套接字的新手,目前我打算将它们用于一个简单的目的:我想在 Cron Job[=34= 之间传递信息] 和网络,因为我的主机阻止我使用 putenv
,这是我找到的最佳解决方案。
正在阅读 official documentation,这是我尝试做的事情:
$host = "localhost"; //or ssl://mydomain.com
$socket = fsockopen($host, 80, $no, $err,0);
if(!$err)
{
var_dump(fputs($socket, "random text"));
var_dump(filesize($socket));
var_dump(fgets($socket, filesize($socket)));
fclose($socket);
}
这是我得到的输出:
int(3)
NULL
bool(false)
所以看起来 fput
成功了,但由于某种原因它实际上并没有写任何东西(与 fwrite
和 fread
.
更新:
对于任何对此感兴趣的人,我发现 another solution which uses a completely different approach。
现在我只需要测试一下;如果它因任何原因不起作用,我将继续使用 peakle 的解决方案
你的脚本有一些错误,比如:fsockopen 中的零超时,提供 resource
到 filesize
函数,我修复了一些错误,如果你的服务器在 localhost
域上工作很好,它将输出正确的响应:
<?php
$host = 'localhost';
$socket = fsockopen($host, 80, $no, $err, 30);
if (!$err) {
var_dump(fputs($socket, "random text"));
while (!feof($socket)) {
echo fgets($socket, 4096);
}
fclose($socket);
}
:)