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 相关文章推荐
swfupload 多文件上传实现代码
Aug 27 PHP
php下mysql数据库操作类(改自discuz)
Jul 03 PHP
PHP常用的文件操作函数经典收藏
Apr 02 PHP
Zend的MVC机制使用分析(二)
May 02 PHP
关于更改Zend Studio/Eclipse代码风格主题的介绍
Jun 23 PHP
php弹出对话框实现重定向代码
Jan 23 PHP
php实现两表合并成新表并且有序排列的方法
Dec 05 PHP
php实现过滤字符串中的中文和数字实例
Jul 29 PHP
实现PHP框架系列文章(6)mysql数据库方法
Mar 04 PHP
PHP打印输出函数汇总
Aug 28 PHP
Zend Framework入门教程之Zend_Db数据库操作详解
Dec 08 PHP
AJAX的使用方法详解
Apr 29 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
详解PHP的Yii框架的运行机制及其路由功能
2016/03/17 PHP
Javascript 网页黑白效果实现代码(兼容IE/FF等)
2010/04/23 Javascript
IE6、IE7中setAttribute不支持class/for/rowspan/colspan等属性
2011/08/28 Javascript
jQuery实现标题有打字效果的焦点图代码
2015/11/16 Javascript
深入理解Java线程编程中的阻塞队列容器
2015/12/07 Javascript
Vue filters过滤器的使用方法
2017/07/14 Javascript
利用require.js与angular搭建spa应用的方法实例
2017/07/19 Javascript
vue-cli项目如何使用vue-resource获取本地的json数据(模拟服务端返回数据)
2017/08/04 Javascript
vue使用iframe嵌入网页的示例代码
2020/06/09 Javascript
JS返回页面时自动回滚到历史浏览位置
2018/09/26 Javascript
微信小程序实现简易table表格
2020/06/19 Javascript
Vue 引入AMap高德地图的实现代码
2019/04/29 Javascript
js 实现ajax发送步骤过程详解
2019/07/25 Javascript
Vue项目前后端联调(使用proxyTable实现跨域方式)
2020/07/18 Javascript
[03:20]次级联赛厮杀超职业 现超级兵对拆世纪大战
2014/10/30 DOTA
Python不规范的日期字符串处理类
2014/06/10 Python
Python实现Windows和Linux之间互相传输文件(文件夹)的方法
2017/05/08 Python
django 通过ajax完成邮箱用户注册、激活账号的方法
2018/04/17 Python
使用python进行文本预处理和提取特征的实例
2018/06/05 Python
pycharm安装和首次使用教程
2018/08/27 Python
Python+pyplot绘制带文本标注的柱状图方法
2019/07/08 Python
使用Django和Postgres进行全文搜索的实例代码
2020/02/13 Python
python对数组进行排序,并输出排序后对应的索引值方式
2020/02/28 Python
Django ORM判断查询结果是否为空,判断django中的orm为空实例
2020/07/09 Python
浅谈python处理json和redis hash的坑
2020/07/16 Python
Tensorflow使用Anaconda、pycharm安装记录
2020/07/29 Python
Python logging日志库空间不足问题解决
2020/09/14 Python
python中reload重载实例用法
2020/12/15 Python
阿联酋团购网站:Groupon阿联酋
2016/10/14 全球购物
Hunkemöller瑞士网上商店:欧洲最大的内衣品牌之一
2018/12/03 全球购物
简历的个人自我评价范文
2014/01/03 职场文书
员工入职担保书范文
2014/04/01 职场文书
护理专业毕业生自荐信
2014/06/15 职场文书
工伤事故赔偿协议书(标准)
2014/09/29 职场文书
2016年中学植树节活动总结
2016/03/16 职场文书
windows server2012 R2下安装PaddleOCR服务的的详细步骤
2022/09/23 Servers