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上传图片、删除图片实现代码
May 12 PHP
php学习笔记之 函数声明(二)
Jun 09 PHP
php学习笔记之面向对象编程
Dec 29 PHP
PHP的一个完美GIF等比缩放类,附带去除缩放黑背景
Apr 01 PHP
php魔术函数__call()用法实例分析
Feb 13 PHP
PHP 中提示undefined index如何解决(多种方法)
Mar 16 PHP
ThinkPHP3.2.2实现持久登录(记住我)功能的方法
May 16 PHP
php中的异常和错误浅析
May 03 PHP
php使用PDO从数据库表中读取数据的实现方法(必看)
Jun 02 PHP
PHP中cookie知识点学习
May 06 PHP
laravel 修改记住我功能的cookie保存时间的方法
Oct 14 PHP
Laravel 框架控制器 Controller原理与用法实例分析
Apr 14 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 htmlentities和htmlspecialchars 的区别
2008/08/18 PHP
PHP中使用数组实现堆栈数据结构的代码
2012/02/05 PHP
解决ajax+php中文乱码的方法详解
2013/06/09 PHP
destoon实现不同会员组公司名称显示不同的颜色的方法
2014/08/22 PHP
php fseek函数读取大文件两种方法
2016/10/12 PHP
PHP7下协程的实现方法详解
2017/12/17 PHP
Laravel 验证码认证学习记录小结
2019/12/20 PHP
使用js获取地址栏中传递的值
2013/07/02 Javascript
IE中图片的onload事件无效问题和解决方法
2014/06/06 Javascript
在JavaScript中处理字符串之link()方法的使用
2015/06/08 Javascript
JQuery实现鼠标移动图片显示描述层的方法
2015/06/25 Javascript
HTML5实现留言和回复页面样式
2015/07/22 Javascript
JS基于FileSystemObject创建一个指定路径的TXT文本文件
2015/08/05 Javascript
JavaScript构建自己的对象示例
2016/11/29 Javascript
微信小程序 数据绑定及运算的简单实例
2017/09/20 Javascript
浅析Node.js非对称加密方法
2018/01/29 Javascript
Vue 幸运大转盘实现思路详解
2019/05/06 Javascript
JavaScrip如果基于url实现图片下载
2020/07/03 Javascript
Python实现的用户登录系统功能示例
2018/02/05 Python
33个Python爬虫项目实战(推荐)
2019/07/08 Python
Python字符串中添加、插入特定字符的方法
2019/09/10 Python
Python操作Mongodb数据库的方法小结
2019/09/10 Python
pip 安装库比较慢的解决方法(国内镜像)
2019/10/06 Python
Python 矩阵转置的几种方法小结
2019/12/02 Python
Python3批量创建Crowd用户并分配组
2020/05/20 Python
英国最大的手表网站:The Watch Hut
2017/03/31 全球购物
俄罗斯儿童和青少年服装、鞋子及配件的在线商店:Orby
2020/02/20 全球购物
数据库专业英语
2012/11/30 面试题
房地产资料员岗位职责
2014/07/02 职场文书
田径运动会通讯稿
2014/09/13 职场文书
学生上课说话检讨书
2014/10/25 职场文书
党员违纪检讨书
2015/05/05 职场文书
复兴之路观后感3000字
2015/06/02 职场文书
nginx如何将http访问的网站改成https访问
2021/03/31 Servers
golang实现一个简单的websocket聊天室功能
2021/10/05 Golang
Python 中面向接口编程
2022/05/20 Python