PHP强制关闭(kill)连接

时间:2012-01-26 14:50:53

标签: php sockets curl kill

我使用套接字(使用fsockopen()stream_socket_client())和cURL运行了一些测试来强制关闭连接(TCP / HTTP)。但是,没有运气。

我是否使用1ms超时(在cURL上CURLOPT_TIMEOUT_MS选项最少需要1s)或者在禁用阻塞后立即退出连接,它仍然可以完美无缺。

我没有尝试过(pcntl_fork())我的脚本,但我的服务器还是不支持它。

还有其他方法可以杀死PHP中的连接吗?你可以在C#中使用PHP无法令人失望:(


编辑:让我澄清一下我的问题,因为它可能有些令人困惑:

我想看看PHP是否允许开发人员发送SYN。就这样。一个单一的SYN数据包,使用PHP的本机函数。

2 个答案:

答案 0 :(得分:2)

这似乎与另一个关于通过PHP发送原始低级数据的Stack Overflow问题有关:Want to manually send SYN ACK packets to establish TCP connection (in PHP if possible)

答案中提到的图书馆是prnl,它完成了这项工作,但我还没有过多地玩过。从描述:

  

PRNL是一个旨在执行低级别网络任务的PHP库。在第一个版本中,我们开始发送和接收原始IP数据包。使用PRNL,您可以创建和传输具有匹配的TCP和UDP数据包的自定义IP数据包。

如果您通过Apache使用PHP,那么您将发现Apache已经在PHP有机会运行之前建立了连接。我现在还不确定你是否有能力在那时干预握手。

如果这不是你想要的,请更新问题,我会看到我能找到什么来帮助你找到你想要的东西。

答案 1 :(得分:0)

你刚试过socket_close吗?

exit()脚本如果应立即关闭连接。