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排序之二维数组的按照字母排序实现代码
Aug 13 PHP
怎样给PHP源代码加密?PHP二进制加密与解密的解决办法
Apr 22 PHP
微信公众号开发之微信公共平台消息回复类实例
Nov 14 PHP
PHP测试成功的邮件发送案例
Oct 26 PHP
win7安装php框架Yii的方法
Jan 25 PHP
PHP中strpos、strstr和stripos、stristr函数分析
Jun 11 PHP
PHP命名空间namespace用法实例分析
Sep 27 PHP
PHP水印类,支持添加图片、文字、填充颜色区域的实现
Feb 04 PHP
PHP mysqli事务操作常用方法分析
Jul 22 PHP
PHP简单实现正则匹配省市区的方法
Apr 13 PHP
如何在Laravel5.8中正确地应用Repository设计模式
Nov 26 PHP
PHP的new static和new self的区别与使用
Nov 27 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的加密方式及原理
2012/06/14 PHP
PHP以及MYSQL日期比较方法
2012/11/29 PHP
php如何执行非缓冲查询API
2016/07/22 PHP
PHP使用ActiveMQ实例
2018/02/05 PHP
javascript 带有滚动条的表格,标题固定,带排序功能.
2009/11/13 Javascript
jquery自动完成插件(autocomplete)应用之PHP版
2009/12/15 Javascript
Javascript 按位与赋值运算符 (&=)使用介绍
2014/02/04 Javascript
二叉树的非递归后序遍历算法实例详解
2014/02/07 Javascript
Vue.JS入门教程之事件监听
2016/12/01 Javascript
Vue之Watcher源码解析(1)
2017/07/19 Javascript
Three.js利用orbit controls插件(轨道控制)控制模型交互动作详解
2017/09/25 Javascript
Vue异步加载about组件
2017/10/31 Javascript
vue组件watch属性实例讲解
2017/11/07 Javascript
Vue 拦截器对token过期处理方法
2018/01/23 Javascript
微信小程序上传图片实例
2018/05/28 Javascript
AngularJS $http post 传递参数数据的方法
2018/10/09 Javascript
浅谈在不使用ssr的情况下解决Vue单页面SEO问题(2)
2018/11/08 Javascript
Vue学习笔记之计算属性与侦听器用法
2019/12/07 Javascript
Python模块学习 re 正则表达式
2011/05/19 Python
python的三目运算符和not in运算符使用示例
2014/03/03 Python
浅述python中argsort()函数的实例用法
2017/03/30 Python
python使用tomorrow实现多线程的例子
2019/07/20 Python
python处理document文档保留原样式
2019/09/23 Python
Python上下文管理器类和上下文管理器装饰器contextmanager用法实例分析
2019/11/07 Python
基于Python生成个性二维码过程详解
2020/03/05 Python
使用Python解析Chrome浏览器书签的示例
2020/11/13 Python
面向对象编程是如何提高软件开发水平的
2014/05/06 面试题
铭立家具面试题
2012/12/06 面试题
会计学专业学生的求职信范文
2014/01/27 职场文书
大学生优秀团员事迹材料
2014/01/30 职场文书
网上商城创业计划书范文
2014/01/31 职场文书
财务管理专业求职信
2014/06/11 职场文书
硕士生找工作求职信
2014/07/05 职场文书
聘用合同范本
2015/09/21 职场文书
OpenCV-Python 实现两张图片自动拼接成全景图
2021/06/11 Python
MySQL时区造成时差问题
2022/04/13 MySQL