2017-04-18 96 views
0

我已經看了這一點,但仍然不真正瞭解它是否可能。發送TCP數據與PHP

我有一個小型網絡服務器,位於我的專用網絡上。我想創建一個php腳本,它將連接到專用網絡上的telnet服務器並每30秒發送一次文本。

顯然,簡單的部分是文本和時間,但連接到TCP端口23和發送文本字符串似乎由於某種原因似乎更難。什麼是最好的方法來做到這一點?

+0

PHP手冊具有用於插座的[示例](http://php.net/manual/en/sockets.examples.php)。 – frz3993

+0

我試了一下。我可以連接並顯示連接,但似乎無法將一串文本發送到設備。 – ahackney

回答

1

使用PHP插口:

<?php 
while(true){ 
    sleep 30; 
    $fp = fsockopen("www.example.com", 23, $errno, $errstr, 30); 
    if (!$fp) { 
     echo "$errstr ($errno)<br />\n"; 
    } else { 
     fwrite($fp, "The string you want to send"); 
     while (fgets($fp, 128)) { 
      echo fgets($fp, 128); // If you expect an answer 
     } 
     fclose($fp); // To close the connection 
    } 
} 
?> 
+0

[爲什麼'while(!feof($ fp))'是錯誤的](http://stackoverflow.com/questions/34425804/php-while-loop-feof-isnt-outputting-showing-everything) – Barmar

+0

這意味着直到文件結尾:) –

+0

這就是你會想到的,但它是錯誤的。它在文件結束後執行額外的'fgets()'。閱讀鏈接的問題。你應該使用'while(fgets($ fp,128))' – Barmar