创建一个简单的套接字

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 成功了,但由于某种原因它实际上并没有写任何东西(与 fwritefread.

相同的结果

更新:

对于任何对此感兴趣的人,我发现 another solution which uses a completely different approach

现在我只需要测试一下;如果它因任何原因不起作用,我将继续使用 peakle 的解决方案

你的脚本有一些错误,比如:fsockopen 中的零超时,提供 resourcefilesize 函数,我修复了一些错误,如果你的服务器在 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);
}

:)