1
我在socket/telnet控制檯上執行命令(fputs
),並通過下面的代碼獲取輸出/結果(fread
),它工作得很好。如何連續捕獲telnet會話/ scoket輸出(fread)?
//open socket let's say ip = 192.168.10.5 and port = 21
$this->socketResource = fsockopen($this->nodeIp,$this->portNumber);
//execute some commands, for example "ipconfig"
fputs($this->socketResource,$command);
//get output string
$output = fread($this->socketResource,30000);
現在我的要求是獲得所有控制檯/套接字輸出,而不執行fputs的任何命令。例如,Cisco路由器在telnet控制檯/套接字上提供連續的調試消息/打印,而不執行fput的任何命令。
如何在一段時間內連續捕獲(fread
)任何telnet會話輸出而不執行任何命令(fputs
)?
如果我像每x秒一樣以離散的方式捕捉,我肯定會錯過一些控制檯輸出。
非常感謝。阻塞意味着tcp流將永久保持打開狀態。我寫信嗎? – 2012-07-26 15:43:15
感謝讓我嘗試...很大的幫助 – 2012-07-26 16:18:14
設置塊模式後,一個回聲stream_get_contents($流)的調用需要這麼多時間,超過一分鐘的小緩衝內容。你知道如何最小化,以便多次通話不會花費太多時間.. – 2012-07-26 17:03:48