php中Socket建立與監聽實現方法_php技巧

來源:互聯網
上載者:User

本文執行個體講述了php中Socket建立與監聽實現方法。分享給大家供大家參考。具體如下:

這裡提供了在php中socket相關函數的一個執行個體,如建立Socket,接受一個socket串連 ,寫入一個Socket及初始化串連等操作,具體執行個體代碼如下:

複製代碼 代碼如下:
$ip="127.0.0.1";          //定義ip地址
$port=1000;           //定義連接埠
$socket=socket_create(af_inet,sock_stream,sol_tcp);  //建立socket
$bind=socket_bind($socket,$ip,$prot);      //綁定一個socket
$listen=socket_listen($socket);        //監聽socket
$msg=socket_accept($socket);        //接受一個socket串連
$welcome="歡迎來到php服務/n";       //定義字串
socket_write($msg,$welcome,strlen($welcome));    //寫入一個socket
socket_close($socket);         //關閉socket
 
*/
 
$ip="127.0.0.1";          //定義ip地址
$port=1000;           //定義連接埠
$socket=socket_create(af_inet,sock_stream,sol_tcp);  //建立socket
socket_clear_error($socket);        //清空socket錯誤資訊
socket_close($socket);         //關閉socket
 
/*
 
*/
$sockets=array();           //定義一個數組
/*建立一對socket,並儲存在數組中*/
if(!socket_create_pair(af_unix,sock_stream,0,$sockets))   //如果socket沒有成功建立
{
  echo socket_strerror(socket_last_error());      //輸出錯誤資訊
}
/*使用建立的socket收發資訊*/
if(!socket_write($sockets[0],"abcdef123n",strlen("abcdef123n")))  //如果執行socket寫失敗
{
  cho socket_strerror(socket_last_error());      //輸出錯誤資訊
}
if(!$data=socket_read($sockets[1],strlen("abcdef123n"),php_binary_read)) //如果讀取資訊失敗
{
  echo socket_strerror(socket_last_error());      //輸出錯誤資訊
}
var_dump($data);           //輸出socket資料資訊
/*關閉socket*/
socket_close($sockets[0]);         //關閉socket1
socket_close($sockets[1]);         //關閉socket2
 
/*
*/
 
$ip="127.0.0.1";          //定義ip地址
$port=1000;           //定義連接埠
$socket=socket_create(af_inet,sock_stream,sol_tcp);  //建立socket
socket_set_nonblock($socket);        //設定不鎖定狀態
socket_connect($socket,$ip,$port);       //初始化串連
socket_set_block($sock);         //鎖定socket
switch(socket_select($r=array($socket),$w=array($socket),$f=array($socket),5))
{
  case 2:
    echo "串連被拒絕!n";
    break;
  case 1:
    echo "成功串連n";
    break;
  case 0:
    echo "連線逾時n";
    break;
}
 
/*
 
*/
 
/*以下代碼定義一個socket監聽類*/
class socketlistener extends socket
{
  function __construct($port=null)        //定義__construct方法
  {
    $this->stream=@socket_create_listen($port?$port:port);   //開啟連接埠接受串連
  }
  function isactive()           //定義isactive方法
  {
    if($this->stream)           //如果有串連
    {
      return true;           //返回真值
    }
    else             //無串連
    {
      return false;           //返回假值
    }
  }
}

希望本文所述對大家的php程式設計有所協助。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.