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与已存在的Java应用程序集成
Oct 09 PHP
用PHP和ACCESS写聊天室(十)
Oct 09 PHP
PHP数字和字符串ID互转函数(类似优酷ID)
Jun 30 PHP
ThinkPHP实现非标准名称数据表快速创建模型的方法
Nov 29 PHP
PHP SPL标准库之文件操作(SplFileInfo和SplFileObject)实例
May 11 PHP
php版微信公众平台入门教程之开发者认证的方法
Sep 26 PHP
PHP利用超级全局变量$_GET来接收表单数据的实例
Nov 05 PHP
php版阿里云OSS图片上传类详解
Dec 01 PHP
PHP封装函数实现生成随机的字符串验证码
Jan 24 PHP
php intval函数用法总结
Apr 14 PHP
PHP实现的多进程控制demo示例
Jul 22 PHP
Laravel框架基础语法与知识点整理【模板变量、输出、include引入子视图等】
Dec 03 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中url函数介绍及使用示例
2014/02/13 PHP
php格式输出文件var_export函数实例
2014/11/15 PHP
MAC下通过改apache配置文件切换php多版本的方法
2017/04/26 PHP
Javascript miscellanea -display data real time, using window.status
2007/01/09 Javascript
从数据结构分析看:用for each...in 比 for...in 要快些
2013/04/17 Javascript
javascript几个易错点记录
2014/11/26 Javascript
JavaScript中的数组特性介绍
2014/12/30 Javascript
手机端转盘抽奖代码分享
2015/09/10 Javascript
Node.js与Sails ~项目结构与Mvc实现及日志机制
2015/10/14 Javascript
举例讲解JavaScript中关于对象操作的相关知识
2015/11/16 Javascript
基于ExtJs在页面上window再调用Window的事件处理方法
2017/07/26 Javascript
详解Node中导入模块require和import的区别
2017/08/11 Javascript
vue-cli 自定义指令directive 添加验证滑块示例
2017/10/19 Javascript
Vue2.0设置全局样式(less/sass和css)
2017/11/18 Javascript
vue-cli项目优化方法- 缩短首屏加载时间
2018/04/01 Javascript
JS原生瀑布流效果实现
2019/04/26 Javascript
springboot+vue实现文件上传下载
2020/11/17 Vue.js
Python进程间通信Queue实例解析
2018/01/25 Python
Python快速查找list中相同部分的方法
2018/06/27 Python
Python+selenium 获取浏览器窗口坐标、句柄的方法
2018/10/14 Python
Python 输入一个数字判断成绩分数等级的方法
2018/11/15 Python
python三引号输出方法
2019/02/27 Python
python使用threading.Condition交替打印两个字符
2019/05/07 Python
使用pyinstaller打包PyQt4程序遇到的问题及解决方法
2019/06/24 Python
Python基于BeautifulSoup和requests实现的爬虫功能示例
2019/08/02 Python
Python爬虫定时计划任务的几种常见方法(推荐)
2021/01/15 Python
加拿大鞋网:Globo Shoes
2019/12/26 全球购物
VC++笔试题
2014/10/13 面试题
数控专业个人求职信范例
2013/11/29 职场文书
七匹狼男装广告词
2014/03/21 职场文书
2014年反洗钱工作总结
2014/11/22 职场文书
详解CocosCreator项目结构机制
2021/04/14 Javascript
只用20行Python代码实现屏幕录制功能
2021/06/02 Python
关于python中readlines函数的参数hint的相关知识总结
2021/06/24 Python
VUE之图片Base64编码使用ElementUI组件上传
2022/04/09 Vue.js
Golang 实现WebSockets
2022/04/24 Golang