簡體   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