php中Socket创建与监听实现方法


Posted in PHP onJanuary 05, 2015

本文实例讲述了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程序设计有所帮助。

PHP 相关文章推荐
php 显示指定路径下的图片
Oct 29 PHP
php下删除一篇文章生成的多个静态页面
Aug 08 PHP
PHP数据类型之布尔型的介绍
Apr 28 PHP
php中OR与|| AND与&&的区别总结
Oct 26 PHP
php 发送带附件邮件示例
Jan 23 PHP
PHP获取指定函数定义在哪个文件中以及其所在的行号实例
May 08 PHP
PHP易混淆函数的区别及用法汇总
Nov 22 PHP
php数组键值用法实例分析
Feb 27 PHP
php文件操作之小型留言本实例
Jun 20 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
Jun 13 PHP
php设计模式之代理模式分析【星际争霸游戏案例】
Mar 23 PHP
php中array_fill函数的实例用法
Mar 02 PHP
php实现计数器方法小结
Jan 05 #PHP
php下Memcached入门实例解析
Jan 05 #PHP
ioncube_loader_win_5.2.dll的错误解决方法
Jan 04 #PHP
jQuery+PHP实现的掷色子抽奖游戏实例
Jan 04 #PHP
php支付宝接口用法分析
Jan 04 #PHP
php采集自中央气象台范围覆盖全国的天气预报代码实例
Jan 04 #PHP
php模仿asp Application对象在线人数统计实现方法
Jan 04 #PHP
You might like
如何提高MYSQL数据库的查询统计速度 select 索引应用
2007/04/11 PHP
最新用php获取谷歌PR值算法,附上php查询PR值代码示例
2011/12/25 PHP
PHP文件生成的图片无法使用CDN缓存的解决方法
2015/06/20 PHP
PHP CURL使用详解
2019/03/21 PHP
模仿JQuery.extend函数扩展自己对象的js代码
2009/12/09 Javascript
js 验证身份证信息有效性
2014/03/28 Javascript
浅析jQuery EasyUI中的tree使用指南
2014/12/18 Javascript
Redis基本知识、安装、部署、配置笔记
2015/03/05 Javascript
jquery实现移动端点击图片查看大图特效
2020/09/11 Javascript
AngularJS基础 ng-mouseenter 指令示例代码
2016/08/02 Javascript
Laravel中常见的错误与解决方法小结
2016/08/30 Javascript
JS图片轮播与索引变色功能实例详解
2017/07/06 Javascript
Angular4学习教程之HTML属性绑定的方法
2018/01/04 Javascript
微信小程序wx.getImageInfo()如何获取图片信息
2018/01/26 Javascript
redux中间件之redux-thunk的具体使用
2018/04/17 Javascript
vue--点击当前增加class,其他删除class的方法
2018/09/15 Javascript
Vue框架里使用Swiper的方法示例
2018/09/20 Javascript
JavaScript 中 JSON.parse 函数 和 JSON.stringify 函数
2018/12/05 Javascript
matplotlib subplots 调整子图间矩的实例
2018/05/25 Python
Python  unittest单元测试框架的使用
2018/09/08 Python
Python Pexpect库的简单使用方法
2019/01/29 Python
Python实现二叉树前序、中序、后序及层次遍历示例代码
2019/05/18 Python
详解使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件
2019/08/23 Python
详解Python中打乱列表顺序random.shuffle()的使用方法
2019/11/11 Python
Python vtk读取并显示dicom文件示例
2020/01/13 Python
Python实现钉钉/企业微信自动打卡的示例代码
2021/02/02 Python
使用CSS3在触屏上为按钮实现激活效果
2013/09/27 HTML / CSS
煤矿开采专业求职信
2014/07/08 职场文书
诉讼授权委托书
2014/10/15 职场文书
个人整改方案范文
2014/10/25 职场文书
2014年科普工作总结
2014/12/06 职场文书
学前班学生评语
2014/12/29 职场文书
班级元旦晚会开幕词
2015/01/29 职场文书
个人收入证明格式
2015/06/24 职场文书
2016年师德学习心得体会
2016/01/12 职场文书
详解Python常用的魔法方法
2021/06/03 Python