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 相关文章推荐
PHP4和PHP5共存于一系统
Nov 17 PHP
php中$this->含义分析
Nov 29 PHP
Windows7下PHP开发环境安装配置图文方法
May 20 PHP
php设计模式 Facade(外观模式)
Jun 26 PHP
深入php var_dump()函数的详解
Jun 05 PHP
php+ajax实现图片文件上传功能实例
Jun 17 PHP
php实现的CSS更新类实例
Sep 22 PHP
php中mail函数发送邮件失败的解决方法
Dec 24 PHP
php生成与读取excel文件
Oct 14 PHP
PHP基于ORM方式操作MySQL数据库实例
Jun 21 PHP
CakePHP框架Model关联对象用法分析
Aug 04 PHP
Laravel如何创建服务器提供者实例代码
Apr 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
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
2020/04/05 PHP
javascript 全等号运算符使用说明
2010/05/31 Javascript
JQ获取动态加载的图片大小的正确方法分享
2013/11/08 Javascript
jQuery获取和设置表单元素的方法
2014/02/14 Javascript
Js 正则表达式知识汇总
2014/12/02 Javascript
javascript实现禁止右键和F12查看源代码
2014/12/26 Javascript
Node.js 制作实时多人游戏框架
2015/01/08 Javascript
jQuery-1.9.1源码分析系列(十一)DOM操作续之克隆节点
2015/12/01 Javascript
javascript基础知识
2016/06/07 Javascript
Javascript 实现计算器时间功能详解及实例(二)
2017/01/08 Javascript
JavaScript比较两个数组的内容是否相同(推荐)
2017/05/02 Javascript
angular实现图片懒加载实例代码
2017/06/08 Javascript
解决vue-router进行build无法正常显示路由页面的问题
2018/03/06 Javascript
在vue中更换字体,本地存储字体非引用在线字体库的方法
2018/09/28 Javascript
教你如何编写Vue.js的单元测试的方法
2018/10/17 Javascript
JavaScript实现无限级递归树的示例代码
2019/03/29 Javascript
javascript中的闭包概念与用法实践分析
2019/07/26 Javascript
一行JavaScript代码如何实现瀑布流布局
2020/12/11 Javascript
使用python统计文件行数示例分享
2014/02/21 Python
python爬虫获取多页天涯帖子
2018/02/23 Python
如何用Python制作微信好友个性签名词云图
2019/06/28 Python
python实现控制电脑鼠标和键盘,登录QQ的方法示例
2019/07/06 Python
Python常用模块sys,os,time,random功能与用法实例分析
2020/01/07 Python
在PyTorch中使用标签平滑正则化的问题
2020/04/03 Python
Python获取指定网段正在使用的IP
2020/12/14 Python
CSS3实现内凹圆角的实例代码
2017/05/04 HTML / CSS
日本最大的购物网站:日本乐天市场(Rakuten Ichiba)
2020/11/04 全球购物
什么是.net的Remoting技术
2016/07/08 面试题
Linux管理员面试题 Linux admin interview questions
2016/07/08 面试题
幼儿园大班评语大全
2014/04/17 职场文书
中班上学期幼儿评语
2014/04/30 职场文书
房屋租赁协议书(标准版)
2014/10/02 职场文书
英文慰问信
2015/02/14 职场文书
历史博物馆观后感
2015/06/05 职场文书
家庭教育教师培训学习体会
2016/01/14 职场文书
Go缓冲channel和非缓冲channel的区别说明
2021/04/25 Golang