0

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

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

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

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

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

一切顺利,

杰森

4

3 回答 3

0

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

于 2009-11-16T03:38:08.003 回答
0

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

于 2009-11-16T03:31:54.060 回答
0

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

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

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

于 2011-09-01T02:09:16.327 回答