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 相关文章推荐
杏林同学录(七)
Oct 09 PHP
PHP读取目录下所有文件的代码
Jan 07 PHP
PHP面向对象分析设计的61条军规小结
Jul 17 PHP
php环境无法上传文件的解决方法
Apr 30 PHP
yiic命令时提示“php.exe”不是内部或外部命令的解决方法
Dec 18 PHP
MacOS 安装 PHP的图片裁剪扩展Tclip
Mar 25 PHP
php动态生成缩略图并输出显示的方法
Apr 20 PHP
使用xampp搭建运行php虚拟主机的详细步骤
Oct 21 PHP
Linux下从零开始安装配置Nginx服务器+PHP开发环境
Dec 21 PHP
PHP链表操作简单示例
Oct 15 PHP
PHP基于IMAP收取邮件的方法示例
Aug 07 PHP
PHP使用PDO调用mssql存储过程的方法示例
Oct 07 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
天使彦史上最神还原,性别曝光的那一刻,百万网友恋爱了
2020/03/02 国漫
php字符串分割函数explode的实例代码
2013/02/07 PHP
php使用curl模拟登录后采集页面的例子
2013/11/04 PHP
php和js实现根据子网掩码和ip计算子网功能示例
2019/11/09 PHP
jquery 使用点滴函数代码
2011/05/20 Javascript
AngularJS + Node.js + MongoDB开发的基于高德地图位置的通讯录
2015/01/02 Javascript
js实现文本框支持加减运算的方法
2015/08/19 Javascript
jQuery bt气泡实现悬停显示及移开隐藏功能的方法
2016/07/12 Javascript
微信小程序 网络API Websocket详解
2016/11/09 Javascript
AngularJS框架中的双向数据绑定机制详解【减少需要重复的开发代码量】
2017/01/19 Javascript
原生js实现可拖拽效果
2017/02/28 Javascript
angular directive的简单使用总结
2017/05/24 Javascript
Vue项目中如何引入icon图标
2018/03/28 Javascript
bootstrap实现点击删除按钮弹出确认框的实例代码
2018/08/16 Javascript
jquery.pager.js分页实现详解
2019/07/29 jQuery
[01:04:48]VGJ.S vs TNC Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
[45:15]Optic vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
python实现根据主机名字获得所有ip地址的方法
2015/06/28 Python
常用python编程模板汇总
2016/02/12 Python
Python部署web开发程序的几种方法
2017/05/05 Python
python实现定时提取实时日志程序
2018/06/22 Python
pygame游戏之旅 创建游戏窗口界面
2018/11/20 Python
python 实现得到当前时间偏移day天后的日期方法
2018/12/31 Python
Falsk 与 Django 过滤器的使用与区别详解
2019/06/04 Python
python 队列基本定义与使用方法【初始化、赋值、判断等】
2019/10/24 Python
Python元组 tuple的概念与基本操作详解【定义、创建、访问、计数、推导式等】
2019/10/30 Python
简单整理HTML5的基本特性和语法
2016/02/18 HTML / CSS
HTML5+CSS3绘制锯齿状的矩形
2016/03/01 HTML / CSS
亚瑟士美国官网:ASICS美国
2017/02/01 全球购物
Crocs波兰官方商店:女鞋、男鞋、童鞋、洞洞鞋
2019/10/08 全球购物
动物科学专业毕业生的自我评价
2013/11/29 职场文书
幼儿园安全责任书范本
2014/07/24 职场文书
机电专业毕业生自我鉴定2014
2014/10/04 职场文书
2015年国庆节标语大全
2015/07/30 职场文书
查看nginx配置文件路径和资源文件路径的方法
2021/03/31 Servers
Python包argparse模块常用方法
2021/06/04 Python