我尝试使用本地套接字与另一个在同一主机上运行的进程(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
永远不会超时,它就会永远挂起。
有办法吗?