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 相关文章推荐
消息持续发送的完整例子
Oct 09 PHP
php 在文件指定行插入数据的代码
May 08 PHP
解析PHP计算页面执行时间的实现代码
Jun 18 PHP
php购物车实现方法
Jan 03 PHP
深入浅出php socket编程
May 13 PHP
php通过获取头信息判断图片类型的方法
Jun 26 PHP
为你总结一些php信息函数
Oct 21 PHP
在PHP中使用FastCGI解析漏洞及修复方案
Nov 10 PHP
yii2中结合gridview如何使用modal弹窗实例代码详解
Jun 12 PHP
学习PHP session的传递方式
Jun 15 PHP
Yii2.0中的COOKIE和SESSION用法
Aug 12 PHP
PHP+JS实现的商品秒杀倒计时用法示例
Nov 15 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
Protoss建筑一览
2020/03/14 星际争霸
AJAX架构之Dojo篇
2007/04/10 Javascript
基于jquery实现的鼠标滑过按钮改变背景图片
2011/07/15 Javascript
获取body标签的两种方法
2011/10/13 Javascript
javascript开发随笔一 preventDefault的必要
2011/11/25 Javascript
JS获取后台Cookies值的小例子
2013/03/04 Javascript
css与javascript跨浏览器兼容性总结
2014/09/15 Javascript
14款经典网页图片和文字特效的jQuery插件-前端开发必备
2015/08/25 Javascript
浅谈javascript的Array.prototype.slice.call
2015/08/31 Javascript
基于javascript代码检测访问网页的浏览器呈现引擎、平台、Windows操作系统、移动设备和游戏系统
2015/12/03 Javascript
jQuery autoComplete插件两种使用方式及动态改变参数值的方法详解
2016/10/24 Javascript
BootStrap 图片样式、辅助类样式和CSS组件的实例详解
2017/01/20 Javascript
简单实现js倒计时功能
2017/02/13 Javascript
Nodejs 和 Electron ubuntu下快速安装过程
2018/05/04 NodeJs
vue.js使用3DES加密的方法示例
2018/05/18 Javascript
详解Vue-axios 设置请求头问题
2018/12/06 Javascript
详解JavaScript的数据类型以及数据类型的转换
2019/04/20 Javascript
mui js控制开关状态、修改switch开关的值方法
2019/09/03 Javascript
vue-cli+iview项目打包上线之后图标不显示问题及解决方法
2019/10/16 Javascript
js实现GIF图片的分解和合成
2019/10/24 Javascript
原生js实现五子棋游戏
2020/05/28 Javascript
ant design vue导航菜单与路由配置操作
2020/10/28 Javascript
Python 序列化 pickle/cPickle模块使用介绍
2014/11/30 Python
numpy使用技巧之数组过滤实例代码
2018/02/03 Python
tensorflow saver 保存和恢复指定 tensor的实例讲解
2018/07/26 Python
对python中Librosa的mfcc步骤详解
2019/01/09 Python
Python 监测文件是否更新的方法
2019/06/10 Python
pycharm编写spark程序,导入pyspark包的3中实现方法
2019/08/02 Python
python怎么判断模块安装完成
2020/06/19 Python
Kidsroom台湾:来自德国的婴儿用品
2017/12/11 全球购物
会计自我鉴定
2013/11/02 职场文书
医院检讨书范文
2014/02/01 职场文书
大学生活动总结怎么写
2014/04/29 职场文书
通信工程求职信
2014/07/16 职场文书
安全责任书模板
2014/07/22 职场文书
中学生运动会新闻稿
2014/09/24 职场文书