【发布时间】:2025-12-22 23:55:11
【问题描述】:
我们目前正在使用套接字打开和写入 http 连接,我们不一定关心响应的请求!比如跟踪 ping 等
这适用于我们的旧服务器和我们的 Windows 开发环境,但不适用于我们的新 ubuntu 服务器。
我们使用的代码如下
$aUrlParts = parse_url($sUrl);
$fp = fsockopen(
$aUrlParts['host'],
isset($aUrlParts['port']) ? $aUrlParts['port'] : 80,
$errno, $errstr, 30
);
$sHeader = "GET {$aUrlParts['path']}?{$aUrlParts["query"]} HTTP/1.1\r\n";
$sHeader.= "Host: {$aUrlParts['host']}\r\n";
$sHeader.= "Connection: Close\r\n\r\n";
fwrite($fp, $sHeader);
fclose($fp);
如果我在 fwrite 之后进行读取,我可以从服务器中获取所有内容,但这与仅卷曲 URL 相比,以这种方式执行请求的意义不大
我已尝试刷新套接字并将其设置为非阻塞,但没有任何效果!之后再读是唯一有效的方法!
感谢任何帮助
编辑:我会提到这些新服务器是基于 AWS 的,我感觉它们上的套接字实现可能不同
【问题讨论】:
-
接收服务器上的博客有线索吗?
-
很遗憾接收服务器都是第三方
-
他们不允许您访问您的日志吗?那没有帮助,大多数都有。你不能在内部设置一个测试服务器来检查它的工作原理吗?
-
是的,我可能会设置一些本地 url 来连接
-
在带有 Apache 的简单 Ubuntu 上,您的 sn-p 可以工作,所以它必须是服务器端的东西。