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 得到根目录的 __FILE__ 常量
Jul 23 PHP
php pcntl_fork和pcntl_fork 的用法
Apr 13 PHP
PHP使用DES进行加密与解密的方法详解
Jun 06 PHP
如何在smarty中增加类似foreach的功能自动加载数据
Jun 26 PHP
php操作redis中的hash和zset类型数据的方法和代码例子
Jul 05 PHP
PHP+jQuery 注册模块的改进(三):更新到Smarty3.1
Oct 14 PHP
PHP开启opcache提升代码性能
Apr 26 PHP
PHP实现对png图像进行缩放的方法(支持透明背景)
Jul 15 PHP
thinkPHP中分页用法实例分析
Dec 26 PHP
ucenter中词语过滤原理分析
Jul 13 PHP
php 读取输出其他文件的实现方法
Jul 26 PHP
PHP实现获取毫秒时间戳的方法【使用microtime()函数】
Mar 01 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
Apache环境下PHP利用HTTP缓存协议原理解析及应用分析
2010/02/16 PHP
php根据分类合并数组的方法实例详解
2013/11/06 PHP
PHP Filter过滤器全面解析
2016/08/09 PHP
laravel学习笔记之模型事件的几种用法示例
2017/08/15 PHP
javascript阻止浏览器后退事件防止误操作清空表单
2013/11/22 Javascript
jQuery动态星级评分效果实现方法
2015/08/06 Javascript
常用原生JS兼容性写法汇总
2016/04/27 Javascript
浅谈Node.js:fs文件系统模块
2016/12/08 Javascript
Vue单文件组件基础模板小结
2017/08/10 Javascript
Vue使用高德地图搭建实时公交应用功能(地图 + 附近站点+线路详情 + 输入提示+换乘详情)
2018/05/16 Javascript
vue.js轮播图组件使用方法详解
2018/07/03 Javascript
谈谈为什么你的 JavaScript 代码如此冗长
2019/01/30 Javascript
Vue Autocomplete 自动完成功能简单示例
2019/05/25 Javascript
在vue-cli 3中给stylus、sass样式传入共享的全局变量
2019/08/12 Javascript
vue 需求 data中的数据之间的调用操作
2020/08/05 Javascript
vue 全局封装loading加载教程(全局监听)
2020/11/05 Javascript
vue表单验证之禁止input输入框输入空格
2020/12/03 Vue.js
Python实现获取照片拍摄日期并重命名的方法
2017/09/30 Python
在Python 字典中一键对应多个值的实例
2019/02/03 Python
详解PyCharm安装MicroPython插件的教程
2019/06/24 Python
python pandas生成时间列表
2019/06/29 Python
Python使用Pygame绘制时钟
2020/11/29 Python
css3实现顶部社会化分享按钮示例
2014/05/06 HTML / CSS
美国受欢迎的女性牛仔裤品牌:DL1961
2016/11/12 全球购物
销售类个人求职信范文
2013/09/25 职场文书
俄语专业毕业生求职信
2014/07/12 职场文书
生活部的活动方案
2014/08/19 职场文书
党员干部四风问题整改措施思想汇报
2014/10/12 职场文书
结婚保证书(卖身契)
2015/02/26 职场文书
2015年政协委员工作总结
2015/05/20 职场文书
爸爸的三轮车观后感
2015/06/16 职场文书
幼儿园春季开学通知
2015/07/16 职场文书
有关浪费资源的建议书
2015/09/14 职场文书
小学新课改心得体会
2016/01/22 职场文书
85句关于理想的名言警句大全
2019/08/22 职场文书
mongodb数据库迁移变更的解决方案
2021/09/04 MongoDB