PHP向socket服务器收发数据的方法


Posted in PHP onJanuary 24, 2015

本文实例讲述了PHP向socket服务器收发数据的方法。分享给大家供大家参考。具体如下:

在PHP要向其它程序发送数据,则需要使用到php的socket功能来实例了,下面我们简单看一个实例,代码如下:

/*socket收发数据 

    @host(string) socket服务器IP 

    @post(int) 端口 

    @str(string) 要发送的数据 

    @back 1|0 socket端是否有数据返回 

    返回true|false|服务端数据 

*/ 

function sendSocketMsg($host,$port,$str,$back=0){ 

        $socket = socket_create(AF_INET,SOCK_STREAM,0); 

        if ($socket < 0) return false; 

        $result = @socket_connect($socket,$host,$port); 

        if ($result == false)return false; 

        socket_write($socket,$str,strlen($str));
        if($back!=0){ 

            $input = socket_read($socket,1024); 

            socket_close ($socket);     

            return $input; 

        }else{ 

            socket_close ($socket);     

            return true;     

        }     

}

socker_read的第二个参数用以指定读入的字节数,你可以通过它来限制从客户端获取数据的大小.

sock函数介绍

函数名 描述
socket_accept() 接受一个Socket连接
socket_bind() 把socket绑定在一个IP地址和端口上
socket_clear_error() 清除socket的错误或者最后的错误代码
socket_close() 关闭一个socket资源
socket_connect() 开始一个socket连接
socket_create_listen() 在指定端口打开一个socket监听
socket_create_pair() 产生一对没有区别的socket到一个数组里
socket_create() 产生一个socket,相当于产生一个socket的数据结构
socket_get_option() 获取socket选项
socket_getpeername() 获取远程类似主机的ip地址
socket_getsockname() 获取本地socket的ip地址
socket_iovec_add() 添加一个新的向量到一个分散/聚合的数组
socket_iovec_alloc() 这个函数创建一个能够发送接收读写的iovec数据结构
socket_iovec_delete() 删除一个已经分配的iovec
socket_iovec_fetch() 返回指定的iovec资源的数据
socket_iovec_free() 释放一个iovec资源
socket_iovec_set() 设置iovec的数据新值
socket_last_error() 获取当前socket的最后错误代码
socket_listen() 监听由指定socket的所有连接
socket_read() 读取指定长度的数据
socket_readv() 读取从分散/聚合数组过来的数据
socket_recv() 从socket里结束数据到缓存
socket_recvfrom() 接受数据从指定的socket,如果没有指定则默认当前socket
socket_recvmsg() 从iovec里接受消息
socket_select() 多路选择
socket_send() 这个函数发送数据到已连接的socket
socket_sendmsg() 发送消息到socket
socket_sendto() 发送消息到指定地址的socket
socket_set_block() 在socket里设置为块模式
socket_set_nonblock() socket里设置为非块模式
socket_set_option() 设置socket选项
socket_shutdown() 这个函数允许你关闭读、写、或者指定的socket
socket_strerror() 返回指定错误号的详细错误
socket_write() 写数据到socket缓存
socket_writev() 写数据到分散/聚合数组

注意:socket_read函数会一直读取壳户端数据,直到遇见n,t或者字符,PHP脚本把这些字符看做是输入的结束符.

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
PHP 和 MySQL 基础教程(二)
Oct 09 PHP
一些被忽视的PHP函数(简单整理)
Apr 30 PHP
PHP+Mysql+jQuery实现发布微博程序 jQuery篇
Oct 08 PHP
php 文本文件的读取效率
Feb 10 PHP
采集邮箱的php代码(抓取网页中的邮箱地址)
Jul 17 PHP
ThinkPHP验证码和分页实例教程
Aug 22 PHP
用php来限制每个ip每天浏览页面数量的实现思路
Feb 24 PHP
php使用正则表达式进行字符串搜索的方法
Mar 23 PHP
PHP简单的MVC框架实现方法
Dec 01 PHP
简要剖析PHP的Yii框架的组件化机制的基本知识
Mar 17 PHP
PHP实现的字符串匹配算法示例【sunday算法】
Dec 19 PHP
php精度计算的问题解析
Jun 21 PHP
php内存缓存实现方法
Jan 24 #PHP
php+xml编程之SimpleXML的应用实例
Jan 24 #PHP
php+xml编程之xpath的应用实例
Jan 24 #PHP
php+xml实现在线英文词典之添加词条的方法
Jan 23 #PHP
php+xml实现在线英文词典查询的方法
Jan 23 #PHP
通过php修改xml文档内容的方法
Jan 23 #PHP
通过php删除xml文档内容的方法
Jan 23 #PHP
You might like
php数组去重的函数代码
2013/02/03 PHP
php内存缓存实现方法
2015/01/24 PHP
WIN8.1下搭建PHP5.6环境
2015/04/29 PHP
Mac下快速搭建PHP开发环境步骤详解
2019/05/05 PHP
php适配器模式简单应用示例
2019/10/23 PHP
javascript回车完美实现tab切换功能
2014/03/13 Javascript
node.js中的console.timeEnd方法使用说明
2014/12/09 Javascript
javascript数据类型示例分享
2015/01/19 Javascript
在JS方法中返回多个值的方法汇总
2015/05/20 Javascript
理解Javascript的call、apply
2015/12/16 Javascript
详解Node.js模块间共享数据库连接的方法
2016/05/24 Javascript
Node.js的环境安装配置(使用nvm方式)
2016/10/11 Javascript
bootstrap手风琴制作方法详解
2017/01/11 Javascript
JS设置时间无效问题的解决办法
2017/02/18 Javascript
HTML5+Canvas调用手机拍照功能实现图片上传(下)
2017/04/21 Javascript
layui table 列宽百分比显示的实现方法
2019/09/28 Javascript
javascript+css实现进度条效果
2020/03/25 Javascript
JS async 函数的含义和用法实例总结
2020/04/08 Javascript
JavaScript经典案例之简易计算器
2020/08/24 Javascript
[01:02:48]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 LGD vs OG
2018/04/02 DOTA
python解决网站的反爬虫策略总结
2016/10/26 Python
Python3.5基础之变量、数据结构、条件和循环语句、break与continue语句实例详解
2019/04/26 Python
自定义Django Form中choicefield下拉菜单选取数据库内容实例
2020/03/13 Python
html5 canvas实现跟随鼠标旋转的箭头
2016/03/11 HTML / CSS
XD健身器材:Kevlar球、Crossfit健身球
2019/03/26 全球购物
"引用"与多态的关系
2013/02/01 面试题
仓库主管的岗位职责
2013/12/04 职场文书
校园招聘策划书
2014/01/09 职场文书
班干部演讲稿
2014/04/24 职场文书
中学学校门卫岗位职责
2014/08/15 职场文书
2014年节能降耗工作总结
2014/12/11 职场文书
大学生思想道德自我评价
2015/03/09 职场文书
小学班主任教育随笔
2015/08/15 职场文书
校园音乐节目广播稿
2015/08/19 职场文书
Nginx配置https原理及实现过程详解
2021/03/31 Servers
Python办公自动化解决world文件批量转换
2021/09/15 Python