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字符串截取问题
Nov 28 PHP
PHP+MySQL 手工注入语句大全 推荐
Oct 30 PHP
windows下升级PHP到5.3.3的过程及注意事项
Oct 12 PHP
php 截取字符串并以零补齐str_pad() 函数
May 07 PHP
php多维数组去掉重复值示例分享
Mar 02 PHP
在Windows XP下安装Apache+MySQL+PHP环境
Feb 22 PHP
PHP连接access数据库
Mar 27 PHP
php实现无限级分类(递归方法)
Aug 06 PHP
PHP连接Nginx服务器并解析Nginx日志的方法
Aug 16 PHP
PHP编程实现多维数组按照某个键值排序的方法小结【2种方法】
Apr 27 PHP
php实现网页端验证码功能
Jul 11 PHP
PHP实现按之字形顺序打印二叉树的方法
Jan 16 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 XML数据解析代码
2010/05/26 PHP
PHP安全技术之 实现php基本安全
2010/09/04 PHP
PHP文件操作方法汇总
2015/07/01 PHP
php上传功能集后缀名判断和随机命名(强力推荐)
2015/09/10 PHP
laravel5表单唯一验证的实例代码
2019/09/30 PHP
关于laravel 日志写入失败问题汇总
2019/10/17 PHP
JavaScript对内存分配及管理机制详细解析
2013/11/11 Javascript
jquery实现手风琴效果实例代码
2013/11/15 Javascript
jQuery中[attribute]选择器用法实例
2014/12/31 Javascript
javascript去除字符串左右两端的空格
2015/02/05 Javascript
AngularJs实现分页功能不带省略号的代码
2016/05/30 Javascript
Ext JS动态加载JavaScript创建窗体的方法
2016/06/23 Javascript
jQuery实现倒计时重新发送短信验证码功能示例
2017/01/12 Javascript
JS获取本周周一,周末及获取任意时间的周一周末功能示例
2017/02/09 Javascript
vuex操作state对象的实例代码
2018/04/25 Javascript
理解Proxy及使用Proxy实现vue数据双向绑定操作
2020/07/18 Javascript
[10:05]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD 选手采访
2021/03/11 DOTA
Python enumerate遍历数组示例应用
2008/09/06 Python
python中numpy包使用教程之数组和相关操作详解
2017/07/30 Python
django定期执行任务(实例讲解)
2017/11/03 Python
对python字典元素的添加与修改方法详解
2018/07/06 Python
详解pandas库pd.read_excel操作读取excel文件参数整理与实例
2019/02/17 Python
解决Jupyter notebook更换主题工具栏被隐藏及添加目录生成插件问题
2020/04/20 Python
CSS3自定义滚动条样式 ::webkit-scrollbar的示例代码详解
2020/06/01 HTML / CSS
贝佳斯官方网站:Borghese
2020/05/08 全球购物
世界上最大的艺术社区:SAA
2020/12/30 全球购物
车间操作工岗位职责
2013/12/19 职场文书
普通大学毕业生自荐信范文
2014/02/23 职场文书
《鹬蚌相争》教学反思
2014/04/22 职场文书
2014年煤矿工人工作总结
2014/12/08 职场文书
2014年共青团工作总结
2014/12/10 职场文书
个人创业事迹材料
2014/12/30 职场文书
爱情保证书
2015/01/17 职场文书
毕业生个人自荐书
2015/03/05 职场文书
Go语言空白表示符_的实例用法
2021/07/04 Golang
JavaScript实现外溢动态爱心的效果的示例代码
2022/03/21 Javascript