【问题标题】:PHP: TCP Connection MonitoringPHP:TCP 连接监控
【发布时间】:2009-11-16 03:25:49
【问题描述】:

我有一个应用程序,用于每周连接一次服务,持续 1 小时。这个会话有很多要求,其中之一是我们一次只能打开一个 tcp 连接。

在我们完成的大约 30 个会话中,我们有 3 个会话在 1 小时内打开了多个 tcp 连接。

我想知道 php 中是否有一个方法可以返回连接状态,我考虑过使用 netstat 并查找我们连接到的服务器的 ip,然后根据该状态确定是否可以继续或我们应该等待。这样做的问题是我们计划在未来购买更多连接,这将导致一次只能通过 1 个连接。

我们正在使用来自 zend 框架的 Zend_Http_Client 并尝试了以下方法:

取消设置客户端和适配器对象 在客户端请求函数之后显式调用适配器关闭函数 上次我同时取消设置和关闭适配器

一切顺利,

杰森

【问题讨论】:

    标签: php network-monitoring


    【解决方案1】:

    执行netstat 命令并查看当前是否建立了与远程主机的任何连接可能是最简单的。

    【讨论】:

    • 我最近不得不重新审视这一点,并认为我可能想出了一个解决方案并想把它留在这里。
    【解决方案2】:

    您不应该尝试在客户端中解决此问题。限制服务器中的并发连接。

    【讨论】:

    • 我不确定他是否可以访问服务器端。我认为这是他的公司支付的网络服务。
    • 这个问题有可能解决吗
    【解决方案3】:

    重新审视这个问题后,我决定每次都使用套接字流选项中的 bindto 选项绑定到同一个端口。这应确保先前的连接已关闭并释放端口。

    测试尚未完成,但初步结果未显示重复连接。

    http://ca.php.net/manual/en/context.socket.php

    【讨论】:

      猜你喜欢
      • 2012-12-12
      • 2012-01-04
      • 2012-11-07
      • 2021-07-25
      • 2014-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多