【问题标题】:PHP persistent socket connectionPHP 持久套接字连接
【发布时间】:2013-12-06 03:57:20
【问题描述】:

我有以下架构。

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

我从 web 应用程序 AJAX 请求到 php-script,它应该与 windows 应用程序建立连接并将其响应发送到 web 应用程序。

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

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

fwrite($fp, $out);

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

像让 php 脚本作为服务器保持连接运行之类的东西? 你有什么想法或例子吗? 谢谢。

【问题讨论】:

    标签: php sockets


    【解决方案1】:

    在我看来,在第一次成功连接后,您正试图在同一端口上连接您的 Windows 应用程序。你要改端口号吗?如果您创建持久连接,Windows 可能会将该端口分配给您的第一个连接。然后它暂时不能使用相同的端口。这解释了为什么它第一次尝试但之后不行。尝试使用 fsockopen 而不是持久化的。

    【讨论】:

    • windows 程序没有改变端口。并在交互后保持打开状态。所以我只能通过同一个端口连接它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-01
    • 1970-01-01
    • 2019-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多