好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php Socket 创建 监听等实例 - php高级应用

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写失败   //开源代码phpfensi测试数据 {    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)            //如果有连接       { //开源代码phpfensi测试数据          return  true;            //返回真值       }       else               //无连接       {         return  false;            //返回假值       }    }  }

查看更多关于php Socket 创建 监听等实例 - php高级应用的详细内容...

  阅读:41次