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批量生成缩略图的代码
Jul 19 PHP
php下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码
Dec 29 PHP
PHP session有效期session.gc_maxlifetime
Apr 20 PHP
php使用post数组的键值创建同名变量并赋值的方法
Apr 03 PHP
php实现HTML实体编号与非ASCII字符串相互转换类实例
Nov 02 PHP
yii2 数据库读写分离配置示例
Feb 10 PHP
PHP排序算法之冒泡排序(Bubble Sort)实现方法详解
Apr 20 PHP
什么是PHP7中的孤儿进程与僵尸进程
Apr 14 PHP
在 Laravel 项目中使用 webpack-encore的方法
Jul 21 PHP
php面向对象重点知识分享
Sep 27 PHP
Laravel实现通过blade模板引擎渲染视图
Oct 25 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 heredoc和phpwind的模板技术使用方法小结
2008/03/28 PHP
Search File Contents PHP 搜索目录文本内容的代码
2010/02/21 PHP
php中unlink()、mkdir()、rmdir()等方法的使用介绍
2012/12/21 PHP
Yii分页用法实例详解
2014/12/04 PHP
php 使用mpdf实现指定字段配置字体样式的方法
2019/07/29 PHP
jquery 输入框数字限制插件
2009/11/10 Javascript
在页面中js获取光标/鼠标的坐标及光标的像素坐标
2013/11/11 Javascript
JS实现可缩放、拖动、关闭和最小化的浮动窗口完整实例
2015/03/04 Javascript
学习javascript面向对象 理解javascript原型和原型链
2016/01/04 Javascript
javascript的正则匹配方法学习
2016/02/24 Javascript
vue实现简单实时汇率计算功能
2017/01/15 Javascript
JavaScript手风琴页面制作
2017/05/17 Javascript
jQuery插件DataTables分页开发心得体会
2017/08/22 jQuery
node.js 核心http模块,起一个服务器,返回一个页面的实例
2017/09/11 Javascript
关于ES6箭头函数中的this问题
2018/02/27 Javascript
Javascript call及apply应用场景及实例
2020/08/26 Javascript
原生JS生成指定位数的验证码
2020/10/28 Javascript
PYTHON 中使用 GLOBAL引发的一系列问题
2016/10/12 Python
详解如何利用Cython为Python代码加速
2018/01/27 Python
python reverse反转部分数组的实例
2018/12/13 Python
Python设计模式之原型模式实例详解
2019/01/18 Python
Python基于opencv实现的简单画板功能示例
2019/03/04 Python
Python Web框架之Django框架cookie和session用法分析
2019/08/16 Python
弄懂这56个Python使用技巧(轻松掌握Python高效开发)
2019/09/18 Python
关于Pytorch的MNIST数据集的预处理详解
2020/01/10 Python
python 基于PYMYSQL使用MYSQL数据库
2020/12/24 Python
牛津在线药房:Oxford Online Pharmacy
2020/11/16 全球购物
自荐信格式
2013/12/01 职场文书
采购助理岗位职责
2014/02/16 职场文书
舞蹈毕业生的自我评价
2014/03/05 职场文书
2015元旦联欢晚会结束语
2014/12/14 职场文书
社区文明倡议书
2015/04/28 职场文书
重阳节座谈会主持词
2015/07/03 职场文书
2016教师学习教育法心得体会
2016/01/19 职场文书
JVM的类加载器和双亲委派模式你了解吗
2022/03/13 Java/Android
十大好看的穿越动漫排名:《瑞克和莫蒂》第一,国漫《有药》在榜
2022/03/18 日漫