好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

tcpphp网站通信 httptcp

很多站长朋友们都不太清楚tcpphp网站通信,今天小编就来给大家整理tcpphp网站通信,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 php怎么才能实现即时通讯? 2、 怎样使用php实现tcp/udp通讯 3、 PHP的tcp/ip怎么与C语言的tcp/ip相互通信? 4、 请教php大神,php如何实现点击页面上的一个按钮发送socket的tcp数据 php怎么才能实现即时通讯?

如下:

php实现实时通信一般有两种方式:socket或comet。

socket是比较好的解决方案,问题在于不是所有的浏览器都兼容,服务器端实现起来也稍微有点麻烦。

comet(基于HTTP长连接的"服务器推")实现起来更加方便,而且兼容所有的浏览器。comet也有好几种实现方式,如iframe, http long request等。

js用定时器周期性向服务器发送请求,模拟实时刷新。这里分长轮询和短轮询。

区别是:长轮询在没有数据更新时,不会立刻返回结果而是在服务器端hold住,直到有数据更新再返回结果。

短轮询无论数据是否有更新,都立刻返回结果。

这种做法服务器开销较大,2websokect,html5的新特性,可以在前后端建立双向通信  

缺点是部分浏览器不支持。b/s架构的系统其实实现即使通信是比较有难度的,因为很难实现服务器推送

目前主流是用js轮询实现,但只要能通过代码减小服务器开销,也能达到比较好的效果。

怎样使用php实现tcp/udp通讯

1.在socket_bind的时候ip地址不能真回环地址如127.0.0.1

2.server.php后台跑起来的时候nohup php server.php > /var/tmp/a.log 2>1

一: udp 方式

1) server.php

<?php //error_reporting( E_ALL ); set_time_limit( 0 ); ob_implicit_flush(); $socket = socket_create( AF_INET, SOCK_DGRAM, SOL_UDP ); if ( $socket === false ) { echo "socket_create() failed:reason:" . socket_strerror( socket_last_error() ) . "\n"; } $ok = socket_bind( $socket, '202.85.218.133', 11109 ); if ( $ok === false ) { echo "socket_bind() failed:reason:" . socket_strerror( socket_last_error( $socket ) ); } while ( true ) { $from = ""; $port = 0; socket_recvfrom( $socket, $buf,1024, 0, $from, $port ); echo $buf; usleep( 1000 ); } ?>

2) client.php

<?php $sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); $msg = 'hello'; $len = strlen($msg); socket_sendto($sock, $msg, $len, 0, '202.85.218.133', 11109); socket_close($sock); ?>

二: TCP 方式

1)server.php

<?php //error_reporting( E_ALL ); set_time_limit( 0 ); ob_implicit_flush(); $socket = socket_create( AF_INET, SOCK_STREAM, SOL_TCP ); socket_bind( $socket, '192.168.2.143', 11109 ); socket_listen($socket); $acpt=socket_accept($socket); echo "Acpt!\n"; while ( $acpt ) { $words=fgets(STDIN); socket_write($acpt,$words); $hear=socket_read($acpt,1024); echo $hear; if("bye\r\n"==$hear){ socket_shutdown($acpt); break; } usleep( 1000 ); } socket_close($socket) ?>

2) client.php

<?php $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); $con=socket_connect($socket,'192.168.2.143',11109); if(!$con){socket_close($socket);exit;} echo "Link\n"; while($con){ $hear=socket_read($socket,1024); echo $hear; $words=fgets(STDIN); socket_write($socket,$words); if($words=="bye\r\n"){break;} } socket_shutdown($socket); socket_close($sock); ?>

PHP的tcp/ip怎么与C语言的tcp/ip相互通信?

包括对各种流数据的读和写:内存流、网络流或文件流。当然,通过NSStream也可以与服务器进行通信。 无论是通过NSStream向服务器写数据,还是从NStream对象中读取服务器数据,都是一件简单的事情。 在Mac OS X中,使用NSHost和NSStream与服务器进行连接的代码如下: NSInputStream *iStream; NSOutputStream *oStream; uint portNo = 500; NSURL *website = [NSURLURL

请教php大神,php如何实现点击页面上的一个按钮发送socket的tcp数据

1.参考资料

socket_create()函数需要三个参数:一个协议、一个socket类型、一个公共协议。socket_create()函数运行成功返回一个

包含socket的资源类型,如果没有成功则返回false。

Socket函数

函数名      描述

函数名 描述

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() 写数据到分散/聚合数组

2.代码:

<?php

        $sendStr = '30 32 30 34 03 30 33';  // 16进制数据

        $sendStrArray = str_split(str_replace(' ', '', $sendStr), 2);  // 将16进制数据转换成两个一组的数组

        $socket = socket_create(AF_INET, SOCK_STREAM, getprotobyname("tcp"));  // 创建Socket

        if (socket_connect($socket, "192.168.1.100", 8080)) {  //连接

            for ($j = 0; $j < count($sendStrArray); $j++) {

                socket_write($socket, chr(hexdec($sendStrArray[$j])));  // 逐组数据发送

            }

            $receiveStr = "";

            $receiveStr = socket_read($socket, 1024, PHP_BINARY_READ);  // 采用2进制方式接收数据

            $receiveStrHex = bin2hex($receiveStr);  // 将2进制数据转换成16进制

            echo "client:" . $receiveStrHex;

        }

        socket_close($socket);  // 关闭Socket

        ?>

关于tcpphp网站通信的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于tcpphp网站通信 httptcp的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did209013
更新时间:2023-05-03   阅读:21次

上一篇: php升序降序 php对数组进行升序排序

下一篇:php预测彩票 php彩票源码下载

最新资料更新

  • 1.php中if应用 php中if语句
  • 2.phpwebim开发 php web开发实用教程
  • 3.proxy.php proxyphp?url
  • 4.php登录注册论文 php写注册登录
  • 5.包含php7.0.10的词条
  • 6.php订单管理功能 php订单提醒功能
  • 7.朔州php后台开发 朔州php培训招聘
  • 8.整站系统php源码 php企业网站整站源码
  • 9.macphp执行权限 macbookpro权限
  • 10.扫描登录php代码 扫描登录php代码错误
  • 11.phpmysql框架 php框架yii
  • 12.php多继承的作用 php继承关键字
  • 13.包含ampquotphp的词条
  • 14.php生成vcard php生成验证码
  • 15.php函数补全 php自动补全
  • 16.php+引用swf php引用其他文件内的函数
  • 17.php多线程上锁 php8 jit 多线程
  • 18.php项目详解 php项目总结
  • 19.php环境配置工具 phpstorm2021配置php环境
  • 20.php项目任务分配 php任务调度框架

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://www.haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]