2012-07-27 184 views
0

我有一个脚本可以打开一个端口并允许多个连接(一个简单的flash聊天框)之间的套接字通信。该脚本必须考虑运行时间和关闭端口的时间。我的问题是,如果脚本陷入无限循环(或者我无法控制它),我可以做些什么来关闭端口?用PHP关闭套接字连接

为了清楚起见,我在第二个PHP脚本之后强制关闭第一个脚本打开的端口(然后我可以在脚本中放入一些检查代码,以便在套接字关闭时停止执行)。

+0

你的问题有点含糊。通常情况下,套接字是打开的,直到它们被程序关闭或程序崩溃/退出。通常你有某种通信协议,说:“嘿,这是我们谈话的结束,现在请关闭你的插座。”此外,如果您的程序容易遇到无限循环,则您需要重新考虑您的设计或采用某种可避免无限循环的检查系统。 – kevin628 2012-07-27 18:31:41

+0

您是否尝试这样做?因为当您尝试重新运行脚本时,即使脚本已终止,您也会看到端口已被使用的错误? – drew010 2012-07-27 18:59:50

+0

@ kevin628我有一个聊天框,我使用PHP作为服务器。该脚本打开端口,并在while(1):'循环内侦听并管理连接。在一个小时内关闭连接后,在循环中有一个检查。虽然这有效,但我想要一种方法来强制关闭来自单独脚本的连接。 – 2012-07-30 08:32:50

回答

1

我不知道有办法做到这一点。一个套接字存在于它创建的实例中。如果您创建套接字并在脚本“foo.php”中运行while(1)循环,据我所知,无法单独执行另一个脚本,比如说“bar.php”来访问在foo.php中创建的套接字并关闭它。通常,客户端 - 服务器应用程序依靠线程来实现套接字池和监视。