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&mysql(一)
Oct 09 PHP
用文本文件制作留言板提示(上)
Oct 09 PHP
Apache2中实现多网站域名绑定的实现方法
Jun 01 PHP
joomla jce editor 解决上传中文名文件失败问题
Jun 09 PHP
PHP 使用pcntl和libevent 实现Timer功能
Oct 27 PHP
zf框架的registry(注册表)使用示例
Mar 13 PHP
smarty模板引擎使用内建函数foreach循环取出所有数组值的方法
Jan 22 PHP
php数组索引与键值操作技巧实例分析
Jun 24 PHP
PHP中Session和Cookie是如何操作的
Oct 10 PHP
smarty学习笔记之常见代码段用法总结
Mar 19 PHP
YII框架行为behaviors用法示例
Apr 26 PHP
yii2.0框架多模型操作示例【添加/修改/删除】
Apr 13 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完整的日历类(CLASS)
2006/11/27 PHP
使用 MySQL Date/Time 类型
2008/03/26 PHP
使用PHP生成PDF方法详解
2015/01/23 PHP
PHP附件下载中文名称乱码的解决方法
2015/12/17 PHP
PHP Socket网络操作类定义与用法示例
2017/08/30 PHP
javascript拓展DOM操作 prependChild insertAfert
2010/11/17 Javascript
使用jquery 简单实现下拉菜单
2015/01/14 Javascript
用js判断是否为360浏览器的实现代码
2015/01/15 Javascript
javascript结合fileReader 实现上传图片
2015/01/30 Javascript
使用Raygun来自动追踪AngularJS中的异常
2015/06/23 Javascript
如何利用AngularJS打造一款简单Web应用
2015/12/05 Javascript
使用jQuery或者原生js实现鼠标滚动加载页面新数据
2016/03/06 Javascript
3种不同的ContextMenu右键菜单实现代码
2016/11/03 Javascript
微信小程序实现皮肤功能(夜间模式)
2017/06/18 Javascript
H5基于iScroll实现下拉刷新和上拉加载更多
2017/07/18 Javascript
推荐一个基于Node.js的表单验证库
2019/02/15 Javascript
小程序如何在不同设备上自适应生成海报的实现方法
2019/08/20 Javascript
JS操作Fckeditor的一些常用方法(获取、插入等)
2020/02/19 Javascript
js实现整体缩放页面适配移动端
2020/03/31 Javascript
Python中多线程及程序锁浅析
2015/01/21 Python
Python的Flask框架应用程序实现使用QQ账号登录的方法
2016/06/07 Python
python基本语法练习实例
2017/09/19 Python
python求最大连续子数组的和
2018/07/07 Python
Python读取excel中的图片完美解决方法
2018/07/27 Python
python基于C/S模式实现聊天室功能
2019/01/09 Python
在Pandas中DataFrame数据合并,连接(concat,merge,join)的实例
2019/01/29 Python
pytorch GAN伪造手写体mnist数据集方式
2020/01/10 Python
python爬虫实现获取下一页代码
2020/03/13 Python
Python如何telnet到网络设备
2021/02/18 Python
生物有机护肤品:Aurelia Probiotic Skincare
2018/01/31 全球购物
Nixon手表英国官网:美国尼克松手表品牌
2020/02/10 全球购物
课外活动总结
2015/02/04 职场文书
2016学雷锋优秀志愿者事迹材料
2016/02/25 职场文书
CentOS安装Nginx并部署vue
2022/04/12 Servers
Golang并发工具Singleflight
2022/05/06 Golang
OpenFeign实现远程调用
2022/08/14 Java/Android