轉載: PHP socket

來源:互聯網
上載者:User
  (本文轉載: http://www.cnblogs.com/yimiao/archive/2011/10/28/2227603.html)

工作實在比較閑,就來寫寫部落格吧。順便整理下。環境:windows

PHP在WIN下操作socket最好用命令列運行程式,至於為什麼,自己可以體會下。

首先運行php + 程式的路徑,出現了這個提示表示你的php沒有加入環境變數path下面。

然後找到你的php安裝目錄,我的是這個

然後複製上面的路徑,右鍵點擊我的電腦-屬性-進階-環境變數,添加到環境變數中,注意有個;號,看

然後確定,儲存。再次運行cmd,OK成功了。不會出現那個提示了。

接下來就是主題了,先放代碼

= 5){            break;        };                }    //echo $buf;    socket_close($msgsock);} while (true);socket_close($sock);?>

這是socket的服務端代碼。然後運行cmd,注意是自己的程式存放路徑啊。

沒有反映,對現在服務端的程式已經開始運行,連接埠已經開始監聽了。運行netstat -ano可以查看連接埠情況,我的是1935連接埠

看,連接埠已經處於LISTENING狀態了。接下來我們只要運行用戶端程式即可串連上。上代碼

TCP/IP Connection\n";$port = 1935;$ip = "127.0.0.1";/* +------------------------------- *    @socket串連整個過程 +------------------------------- *    @socket_create *    @socket_connect *    @socket_write *    @socket_read *    @socket_close +-------------------------------- */$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);if ($socket < 0) {    echo "socket_create() failed: reason: " . socket_strerror($socket) . "\n";}else {    echo "OK.\n";}echo "試圖串連 '$ip' 連接埠 '$port'...\n";$result = socket_connect($socket, $ip, $port);if ($result < 0) {    echo "socket_connect() failed.\nReason: ($result) " . socket_strerror($result) . "\n";}else {    echo "串連OK\n";}$in = "Ho\r\n";$in .= "first blood\r\n";$out = '';if(!socket_write($socket, $in, strlen($in))) {    echo "socket_write() failed: reason: " . socket_strerror($socket) . "\n";}else {    echo "發送到伺服器資訊成功!\n";    echo "發送的內容為:$in 
";}while($out = socket_read($socket, 8192)) { echo "接收伺服器回傳資訊成功!\n"; echo "接受的內容為:",$out;}echo "關閉SOCKET...\n";socket_close($socket);echo "關閉OK\n";?>

至此用戶端已經串連上服務端了。這隻是個小例子,很多東西知道原理其他就好做了

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.