PHP:如何在本地套接字上启用socket_connect的超时?

时间:2018-06-10 06:39:57

标签: php

我尝试使用本地套接字与另一个在同一主机上运行的进程(Linux上的PHP 7.1)进行通信:

$socket_fd = @socket_create(AF_UNIX, SOCK_SEQPACKET, 0);
socket_set_option($socket_fd, SOL_SOCKET, SO_RCVTIMEO, array('sec' => 1, 'usec' => 0));
socket_set_option($socket_fd, SOL_SOCKET, SO_SNDTIMEO, array('sec' => 1, 'usec' => 0)); 
if (@socket_connect($socket_fd, "/mypath/mysocket.sock"))
{ // so something
}

正如您所看到的,我已经尝试过类似问题的解决方案How to pass msi ArgumentList with $ScriptDir with spaces in powershell? 但这似乎不适用于本地套接字。

如果另一方的程序挂起,socket_connect永远不会超时,它就会永远挂起。

有办法吗?

0 个答案:

没有答案