打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
PHP socket编程
1. 简介
Socket被用于进程间通讯。进程间通讯一般基于客户端—服务器模型。在我们这个案例中,客户端—服务器是彼此交互的两个程序。客户端和服务器之间的交互需要一个连接。Socket编程就负责建立这一连接。
最后,我们将会学习如何用PHP创建简单的客户端—服务器程序。我们也将学习如何用客户端程序向服务器端发送和接收信息。
2. 使用代码
目标:开发一个客户端发送字符串信息到服务器同时服务器发送相同字符串的反转字符串给客户端。
PHP Server
Step.1 设置变量主机“Host"和端口”Port"
[php] view plaincopy
$host = "127.0.0.1";
$port = 5353;
// No Timeout
set_time_limit(0);
端口号port可以是1024 -65535之间的任意整数。
Step2. 创建Socket
[php] view plaincopy
$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socket\n");
Step3. 将socket绑定到端口和主机
[php] view plaincopy
$result = socket_bind($socket, $host, $port) or die("Could not bind to socket\n");
这里step2创建的socket被绑定到IP地址和端口。
Step4. 启动监听socket
绑定了IP地址和端口之后,服务器等待客户端连接,一直处于等待。
[php] view plaincopy
$result = socket_listen($socket, 3) or die("Could not set up socket listener\n");
Step 5: 接受进来的连接
这个函数接受进来的连接请求并且创建socket。在接受了客户端的连接之后,这个函数返回了另外一个socket来实际负责与相应客户端socket的通讯。下面代码中的“$spawn"就是负责与客户端socket通讯的服务器端socket.
[php] view plaincopy
$spawn = socket_accept($socket) or die("Could not accept incoming connection\n")
到目前为止,我们已经准备好了服务器但是目前的代码实际上什么也做不了。回顾我们之前说过的目标,我们将要从客户端socket读取字符串并将字符串反转然后返回给客户端socket.
Step6: 从客户端接收字符串
[php] view plaincopy
$input = socket_read($spawn, 1024) or die("Could not read input\n");
Step7: 反转字符串
[php] view plaincopy
$output = strrev($input) . "\n";
Step 8: 把字符串发送给客户端socket
[php] view plaincopy
socket_write($spawn, $output, strlen ($output)) or die("Could not write output\n");
Step9 : 关闭服务器端Socket
[php] view plaincopy
socket_close($spawn);
socket_close($socket);
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
java Socket编程
基于C#的socket编程的TCP同步实现
【Swoole系列2.3】TCP、UDP服务客户端
面向套接字(Socket)Java编程(单线程+多线程)
C#网络编程(基本概念和操作) - Part.1 - C# 编程 - TraceFact....
Redis架构
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服