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代码
Mar 03 PHP
PHP设计模式 注册表模式(多个类的注册)
Feb 05 PHP
PHP数组无限分级数据的层级化处理代码
Dec 29 PHP
thinkphp备份数据库的方法分享
Jan 04 PHP
PHP中使用Memache作为进程锁的操作类分享
Mar 30 PHP
php获取文件后缀的9种方法
Mar 22 PHP
ThinkPHP框架搭建及常见问题(XAMPP安装失败、Apache/MySQL启动失败)
Apr 15 PHP
手把手编写PHP框架 深入了解MVC运行流程
Sep 19 PHP
基于thinkPHP类的插入数据库操作功能示例
Jan 06 PHP
Yii框架扩展CGridView增加导出CSV功能的方法
May 24 PHP
PHP实现蛇形矩阵,回环矩阵及数字螺旋矩阵的方法分析
May 29 PHP
Thinkphp 5.0实现微信企业付款到零钱
Sep 30 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 var_dump()函数的详解
2013/06/05 PHP
Yii2中SqlDataProvider用法示例
2016/09/22 PHP
PHP调用API接口实现天气查询功能的示例
2017/09/21 PHP
[原创]后缀就扩展名为js的文件是什么文件
2007/12/06 Javascript
JS下拉框内容左右移动效果的具体实现
2013/07/10 Javascript
JS.findElementById()使用介绍
2013/09/21 Javascript
用jquery等比例控制图片宽高的具体实现
2014/01/28 Javascript
JS中判断null、undefined与NaN的方法
2014/03/26 Javascript
js H5 canvas投篮小游戏
2016/08/18 Javascript
JS取数字小数点后两位或n位的简单方法
2016/10/24 Javascript
ionic实现底部分享功能
2017/05/11 Javascript
JS之if语句对接事件动作逻辑(详解)
2017/06/28 Javascript
js原生实现移动端手指滑动轮播图效果的示例
2018/01/02 Javascript
element-ui 本地化使用教程详解
2019/10/28 Javascript
js获取图片的base64编码并压缩
2020/12/05 Javascript
实例讲解Python中的私有属性
2014/08/21 Python
Python可变参数函数用法实例
2015/07/07 Python
Win10下python3.5和python2.7环境变量配置教程
2018/09/18 Python
浅谈python元素如何去重,去重后如何保持原来元素的顺序不变
2020/02/28 Python
Python包和模块的分发详细介绍
2020/06/19 Python
在django中查询获取数据,get, filter,all(),values()操作
2020/08/09 Python
Python 实现键盘鼠标按键模拟
2020/11/18 Python
Django vue前后端分离整合过程解析
2020/11/20 Python
python绘制雷达图实例讲解
2021/01/03 Python
python 实现百度网盘非会员上传超过500个文件的方法
2021/01/07 Python
CSS Grid布局教程之什么是网格布局
2014/12/30 HTML / CSS
Html5新标签datalist实现输入框与后台数据库数据的动态匹配
2017/05/18 HTML / CSS
营销部内勤岗位职责
2014/04/30 职场文书
迎国庆演讲稿
2014/09/05 职场文书
领导班子个人对照检查剖析材料
2014/09/29 职场文书
教师党员个人剖析材料
2014/09/29 职场文书
学校领导班子四风问题整改意见
2014/10/02 职场文书
个人融资协议书
2014/10/02 职场文书
就业推荐表自我评价范文
2015/03/02 职场文书
门面租赁合同范文
2019/08/06 职场文书
2019年公司卫生管理制度样本
2019/08/21 职场文书