php - PHP:如何在本地套接字上启用 socket_connect 超时?
问题描述
我尝试使用本地套接字与在同一主机上运行的另一个进程通信(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
}
如您所见,我已经尝试了类似问题的解决方案Make PHP socket_connect timeout 但这似乎不适用于本地套接字。
如果另一端的程序挂起,socket_connect
永远不会超时,它只会永远挂起。
有没有办法做到这一点?
解决方案
推荐阅读
- ios14 - 虚假的 iOS AgoraServiceThread 崩溃
- javascript - 带有抽屉的 React Native v5 底部选项卡导航
- google-cloud-platform - 为什么 ParDo 不能在 DataflowRunner 上工作?
- sql - 使用 NorthWind 数据库,编写 SQL 语句,报告每个员工的姓名和该员工接受的任何订单
- html - VS 代码在制表键和空格键后删除空格(不能缩进)
- sql - T-SQL:将数字 (19,0) 转换为日期时间
- python - 如何在熊猫中其他 2 个单元格相等的情况下向前填充 na?
- xml - XSLT - 从多次出现的元素中删除空格和连字符
- python - 从 wiki 上抓取表格。Python 与 bs4
- scheme - 在 Racket 中使用本地而不是辅助函数