我有以下体系结构。
- 一个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。