文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

php怎么使用socket简单实现通信功能

2023-07-05 09:33

关注

这篇文章主要讲解了“php怎么使用socket简单实现通信功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php怎么使用socket简单实现通信功能”吧!

WebSocket的作用

WebSock其实在平常使用,我们是时常见到的,用于实时通讯,例如我们常用的实时聊天、服务端向客户端消息推送、也可以实现踢用户下线功能。实时弹幕功能等等。

什么是握手

为了创建Websocket连接,需要通过浏览器发出请求,之后服务器进行回应,这个过程通常称为“握手”(handshaking)。

这是比较正式的理解,在接下来使用方式中会在介绍到握手的实际含义。

背景介绍

目标:我希望通过套接字的TCP传输来搭建一个服务器,这个服务器的作用是:接受多个客户端的连接并完成他们的相互通信。比如客户端A,客户端B同时连接到服务器S,客户端A向服务器S发送消息,服务器S会将A的消息转发给B,同理,B的消息也可以通过S被转发到A。这样就实现了客户端A和客户端B之间的相互通信。

本次我们只实现客户端与服务器之间连接并通信,暂时没有写服务器的转发功能。

IP和PORT

服务端需要有一个IP,TCP通信时,还需要提供一个端口号。

客服端需要有一个IP,TCP通信时,也需要提供一个端口号。

服务端就是负责接收客户端的信息

客户端代码

$PORT = 12345; //与server端口匹配//创建socket/参数1:代表IPV4/参数2:流传输/参数3:TCP/$client = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); //向指定地址/端口发出连接请求,连接结果返回到resule/127.0.0.1指本地IP$result = socket_connect($client, "127.0.0.1", $PORT); //这里我们简单的对连接结果进行响应/为了Debug方便if($result == false){      echo "ERROR CONNECT\n";     die();} else {    echo "CONNECTED\n";}//建立将要发送的消息$data = "linrux Hello World\n"; //将消息发送出去socket_write($client, $data);  //关闭socketsocket_close($client);

服务端代码

//进入死循环,一直接收客户端发送信息while(true){//创建socket/参数解释同客服端$server = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); //绑定端口和IP/0.0.0.0表示允许任意地址发起连接/12345表示允许12345端口号进行连接socket_bind($server, "0.0.0.0", 12345); //进入监听socket_listen($server); //接收请求并建立连接$connection = socket_accept($server); //接收数据$data = socket_read($connection, 1024); echo $data; }//关闭socket #socket_close($server);

客户端发送信息

php怎么使用socket简单实现通信功能

服务端接收消息

php怎么使用socket简单实现通信功能

感谢各位的阅读,以上就是“php怎么使用socket简单实现通信功能”的内容了,经过本文的学习后,相信大家对php怎么使用socket简单实现通信功能这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯