首页 > 开发 > PHP > 正文

php利用stream_socket_server与stream_socket_client

2024-05-04 21:58:25
字体:大 中 小
来源:转载
供稿:网友
  1. //以上php为服务端,它将监听消息,直到按下:ctrl+c 
  2. while(true) 
  3. { 
  4.   //每5秒执行一次 
  5.   receive_message('127.0.0.1','85',5); 
  6. } 
  7. //自定义函数用于获取消息 
  8. function receive_message($ips教程erver,$portnumber,$nbsecondsidle) 
  9. { 
  10.   //创建socket 
  11.   $socket=stream_socket_server('tcp://'.$ipserver.':'.$portnumber, $errno, $errstr); 
  12.   if(!$socket) 
  13.   { 
  14.     //如果创建socket失败输出内容 
  15.     echo "$errstr ($errno)<br />n"; 
  16.   } 
  17.   else 
  18.   { 
  19.     //如果创建成功则接受socket连接并获取信息 
  20.     while($conn=@stream_socket_accept($socket,$nbsecondsidle)) 
  21.     { 
  22.       $message=read($conn,1024); 
  23.       echo 'i have received that : '.$message; 
  24.       fputs ($conn, "okn"); 
  25.       fclose ($conn); 
  26.     } 
  27.     fclose($socket); 
  28.   } 
  29. } 
  30. //server结束 
  31. ?> 
  32. <?php 
  33. //以下代码为客户端,它将发送信息并读取回复 
  34. send_message('127.0.0.1','85','message to send...'); 
  35. //自定义函数,发送信息 
  36. function send_message($ipserver,$portserver,$message) 
  37. { 
  38.   $fp=stream_socket_client("tcp://$ipserver:$portserver", $errno, $errstr); 
  39.   if(!$fp) 
  40.   { 
  41.     echo "erreur : $errno - $errstr<br />n"; 
  42.   } 
  43.   else 
  44.   { 
  45.     fwrite($fp,"$messagen"); 
  46.     $response =  fread($fp, 4); 
  47.     if($response != "okn") 
  48.     { 
  49.       echo 'the command couldn't be executed...ncause :'.$response; 
  50.     } 
  51.     else 
  52.     { 
  53.       echo 'execution successfull...'; 
  54.     } 
  55.     fclose($fp); 
  56.   } 
  57. } 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表