2012-04-23 16 views
0

我目前使用cURL multi在幾秒鐘內檢查數千個http狀態碼,並且它工作得很好。
但是,我想知道 - 他們是否可以使用cURL或其他PHP多任務方法檢查端口是否響應(例如mysql)?一種使用PHP(多線程?)檢查端口的方法

+2

簡答題:不可以。使用支持多線程的語言。或者像Node.js異步的東西 – DaveRandom 2012-04-23 09:20:48

+1

問題是使用'fsockopen'是同步的;一旦連接,您可以將套接字設置爲非阻塞狀態並使用'stream_select'來複用您的連接,但您將失去連接所花費的時間。除此之外,您仍然需要代碼來處理來自該端口的響應(例如mysql) – 2012-04-23 09:40:54

回答

2

簡短的回答:

的PHP中沒有線程。

但是,您可以查看pcntl擴展名。它不是關於線程,而是fork(這意味着將爲每個fork創建一個進程)。

A Thread extension已經在幾年前開發出來,但它現在還沒有更新2年。

叉子是完全有價值的,可用於您的用例,但它不易於維護或編寫。 根據你的需要,你可能最好想使用python或perl,它們都有更好的線程支持。