溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么在PHP中利用socket實(shí)現(xiàn)客戶端和服務(wù)端通訊

發(fā)布時(shí)間:2021-04-15 16:09:45 來(lái)源:億速云 閱讀:114 作者:Leah 欄目:開(kāi)發(fā)技術(shù)

怎么在PHP中利用socket實(shí)現(xiàn)客戶端和服務(wù)端通訊?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

服務(wù)器端:

<?php
  set_time_limit(0);
  $host="localhost";
  $port=1001;
  //創(chuàng)建一個(gè)連接
  $socket=socket_create(AF_INET,SOCK_STREAM,SOL_TCP)or die("cannot create socket\n");
  //綁定socket到端口
  $result=socket_bind($socket,$host,$port) or die("cannot bind port to socket\n");
  //開(kāi)始監(jiān)聽(tīng)這個(gè)端口
  $result=socket_listen($socket,4) or die("could not set up socket listen\n");
  //接受連接,另一個(gè)socket來(lái)處理通信
  $msgsock=socket_accept($socket) or die("cannot accept incoming connection\n");
  if($msgsock){
    echo date("Y-m-d H:i:s D a");
  }
  //讀取客戶端發(fā)送過(guò)來(lái)的信息
  $input=socket_read($msgsock,1024) or die("cannot read input\n");
  $input=trim($input);
  $output=strrev($input)."順序反過(guò)來(lái)了吧\n";
  //對(duì)接收到的信息進(jìn)行處理,然后返回到客戶端
  socket_write($msgsock,$output,strlen($output)) or die("cannot write");
  //關(guān)閉socket連接
  socket_close($msgsock);
  socket_close($socket);
?>

客戶端:

<?php
  set_time_limit(0);
  $host="localhost";
  $port=1001;
  //創(chuàng)建一個(gè)socket
  $socket=socket_create(AF_INET,SOCK_STREAM,SOL_TCP)or die("cannot create socket\n");
  $conn=socket_connect($socket,$host,$port) or die("cannot connect server\n");
  if($conn){echo "client connect ok!";}
  socket_write($socket,"hello world!") or die("cannot write data\n");
  $buffer=socket_read($socket,1024,PHP_NORMAL_READ);
  if($buffer){
    echo "response was:".$buffer."\n";
  }
  socket_close($socket);
?>

看完上述內(nèi)容,你們掌握怎么在PHP中利用socket實(shí)現(xiàn)客戶端和服務(wù)端通訊的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI