繁体   English   中英

如何判断套接字是否在PHP中打开?

[英]How to tell if socket is open in PHP?

我需要维护一些用PHP打开的套接字,并定期检查这些套接字。 我是PHP套接字的新手。 我像这样打开插座:

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); 
socket_connect($socket, $ip, $port);

一些套接字可能会进入不返回消息的状态。 这些套接字仅接收消息。 如果套接字不响应消息,如何判断套接字是否打开?

socket_sendto —将消息发送到套接字(无论是否已连接)

似乎您可以使用socket_sendto并将一些“ ping”数据发送到远程主机,然后测试返回值以确定套接字是否仍然建立。

最好使用以下函数:fsockopen()

阅读此: http : //www.php.net/manual/en/function.fsockopen.php

或者您可以尝试使用以下函数:socket_create_listen()

阅读此内容: http : //www.php.net/manual/zh/function.socket-create-listen.php

(这只是实验性的。)

并定期检查您可以使用简单的cron进行检查。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM