PHP持久套接字连接


PHP persistent socket connection

我有以下体系结构。

  • 一个Windows应用程序,它可以通过定义的端口
  • 在同一本地主机上运行的Web应用程序
  • PHP脚本充当这两个方面之间的连接器

我从web应用程序AJAX请求php脚本,该脚本应该与windows应用程序建立连接,并将其响应发送给web应用程序。

效果很好。但只有一次。对php脚本的第二次调用已经不起作用,因为窗口应用程序拒绝访问php脚本。我试着使用pfsockpopen所以:

if(!isset($fp)) {
    $fp = pfsockopen($address, $service_port, $errno, $errstr, 30);    
}
if(!$fp) die($errstr);
fwrite($fp, $out);

但当我第二次调用时,窗口应用程序拒绝了它。什么应该是正确的方法/解决方案?

类似于让php脚本作为保持连接的服务器运行?你有什么想法或例子吗?非常感谢。

在我看来,第一次成功连接后,您似乎正试图在同一端口上连接windows应用程序。您是否正在更改端口号?如果你创建了一个持久连接,那么windows很可能会将该端口分配给你的第一个连接。然后它在一段时间内不能使用同一个端口。这就解释了为什么它第一次尝试就有效,但之后就无效了。尝试使用fsockopen而不是持久的fsockopen。