时时商务社区
标题:
php简单socket服务器客户端代码实例
[打印本页]
作者:
bewin83
时间:
2018-2-14 05:46
本篇文章分享一个简单的socket示例,用php。实现一个接收输入字符串,处理并返回这个字符串到客户端的TCP服务。
产生一个 socket 服务端
提示:你应该使用你的命令提示符来运行上面这段代码。理由是因为这里将产生一个服务器,而不是一个Web页面。如果你尝试使用Web浏览器来运行这个脚本,那么很有可能它会超过30秒的限时。你可以使用下面的代码来设置一个无限的运行时间,但是还是建议使用命令提示符来运行。
[U]复制代码[/U] 代码如下:
set_time_limit(0);
在你的命令提示符中对这个脚本进行简单测试:
[U]复制代码[/U] 代码如下:
Php.exe socket_server.php
如果你没有在系统的环境变量中设置php解释器的路径,那么你将需要给php.exe指定详细的路径。当你运行这个服务器端的时候,你能够通过远程登陆(telnet)的方式连接到端口1337来测试这个服务器。
上面的服务器端有三个问题:
1. 它不能接受多个连接。
2. 它只完成唯一的一个命令。
3. 你不能通过Web浏览器连接这个服务器。
这个第一个问题比较容易解决,你可以使用一个应用程序去每次都连接到服务器。但是后面的问题是你需要使用一个Web页面去连接这个服务器,这个比较困难。你可以让你的服务器接受连接,然后些数据到客户端(如果它一定要写的话),关闭连接并且等待下一个连接。
在上一个代码的基础上再改进,产生下面的代码来做你的新服务器端:
这个服务器端要做什么呢?它初始化一个socket并且打开一个缓存收发数据。它等待连接,一旦产生一个连接,它将打印“Socket connected”在服务器端的屏幕上。这个服务器检查缓冲区,如果缓冲区里有数据,它将把数据发送到连接过来的计算机。然后它发送这个数据的接受信息,一旦它接受了信息,就把信息保存到数据里,并且让连接的计算机知道这些信息,最后关闭连接。当连接关闭后,服务器又开始处理下一次连接。
产生一个 socket 客户端
处理第二个问题是很容易的。你需要产生一个php页连接一个socket,发送一些数据进它的缓存并处理它。然后你有个处理后的数据在还顿,你能够发送你的数据到服务器。在另外一台客户端连接,它将处理那些数据。
下面的例子示范了使用socket:
NO DATA
");
break;
}else{
// Do something with the data in the buffer
echo("Buffer Data: " . $buffer . "
");
}
}
echo("Writing to Socket
");
// Write some test data to our socket
if(!socket_write($socket, "SOME DATA\r\n")){
echo("Write failed
");
}
// Read any response from the socket phpernote.com
while($buffer = socket_read($socket, 1024, PHP_NORMAL_READ)){
echo("Data sent was: SOME DATA
Response was:" . $buffer . "
");
}
echo("Done Reading from Socket
");
这个例子的代码演示了客户端连接到服务器。客户端读取数据。如果这是第一时间到达这个循环的首次连接,这个服务器将发送“NO DATA”返回给客户端。如果情况发生了,这个客户端在连接之上。客户端发送它的数据到服务器,数据发送给服务器,客户端等待响应。一旦接受到响应,那么它将把响应写到屏幕上。
您可能感兴趣的文章:
php与java通过socket通信的实现代码
php socket客户端及服务器端应用实例
php与flash as3 socket通信传送文件实现代码
php中socket通信机制实例详解
PHP的Socket通信之UDP通信实例
php socket通信(tcp/udp)实例分析
php socket通信简单实现
深入浅出讲解:php的socket通信原理
用PHP的socket实现客户端到服务端的通信实例详解
PHP基于socket实现的简单客户端和服务端通讯功能示例
欢迎光临 时时商务社区 (http://bbs.4435.cn/)
Powered by Discuz! X3.2