关于php的socket,该如何解决
程序员文章站
2022-06-17 10:48:04
...
关于php的socket
最近在学php的socket,想通过一个功能的实现检验我对socket的理解:
1、client端发送数据到服务器端
2、server端接收client发送过来的数据,并会送一个响应给client端
3、client端显示server端发过来的响应信息
以下是代码
server.php:
// Set up our socket
$commonProtocol = getprotobyname("tcp");
$socket = socket_create(AF_INET, SOCK_STREAM, $commonProtocol);
socket_bind($socket, 'localhost', 1234);
socket_listen($socket);
// Initialize the buffer
$buffer = "NO DATA";
while(true) {
// Accept any connections coming in on this socket
$connection = socket_accept($socket);
printf("Socket connected\r\n");
// Check to see if there is anything in the buffer
$buffer=socket_read($connection, 2048, PHP_NORMAL_READ);
echo "recived from client ".$buffer;
$ResponseToClient=$buffer." is handled by server!\n";
socket_write($connection, $ResponseToClient);
echo "response to client!\n ";
}
?>
client.php:
// Create the socket and connect
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$connection = socket_connect($socket,'localhost', 65500);
$i=0;
$s=0;
while(true)
{
echo "sending data".$i++."\n";
$SendDataToServer=socket_write($socket, "server".$s++);
$ResponseFromServer=socket_read($socket, 2048, PHP_NORMAL_READ);
echo "received".$ResponseFromServer."from server \n";
}
?>
问题是:client端只显示sending data0
而server端只显示Socket connected
其他什么也不显示,没有达到我预想的client不断发送数据,server端不断处理数据并返回给client的目的,请高手指教下,万分感谢
最近在学php的socket,想通过一个功能的实现检验我对socket的理解:
1、client端发送数据到服务器端
2、server端接收client发送过来的数据,并会送一个响应给client端
3、client端显示server端发过来的响应信息
以下是代码
server.php:
// Set up our socket
$commonProtocol = getprotobyname("tcp");
$socket = socket_create(AF_INET, SOCK_STREAM, $commonProtocol);
socket_bind($socket, 'localhost', 1234);
socket_listen($socket);
// Initialize the buffer
$buffer = "NO DATA";
while(true) {
// Accept any connections coming in on this socket
$connection = socket_accept($socket);
printf("Socket connected\r\n");
// Check to see if there is anything in the buffer
$buffer=socket_read($connection, 2048, PHP_NORMAL_READ);
echo "recived from client ".$buffer;
$ResponseToClient=$buffer." is handled by server!\n";
socket_write($connection, $ResponseToClient);
echo "response to client!\n ";
}
?>
client.php:
// Create the socket and connect
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$connection = socket_connect($socket,'localhost', 65500);
$i=0;
$s=0;
while(true)
{
echo "sending data".$i++."\n";
$SendDataToServer=socket_write($socket, "server".$s++);
$ResponseFromServer=socket_read($socket, 2048, PHP_NORMAL_READ);
echo "received".$ResponseFromServer."from server \n";
}
?>
问题是:client端只显示sending data0
而server端只显示Socket connected
其他什么也不显示,没有达到我预想的client不断发送数据,server端不断处理数据并返回给client的目的,请高手指教下,万分感谢
socket
PHP
专题推荐
-
独孤九贱-php全栈开发教程
全栈 170W+
主讲:Peter-Zhu 轻松幽默、简短易学,非常适合PHP学习入门
-
玉女心经-web前端开发教程
入门 80W+
主讲:灭绝师太 由浅入深、明快简洁,非常适合前端学习入门
-
天龙八部-实战开发教程
实战 120W+
主讲:西门大官人 思路清晰、严谨规范,适合有一定web编程基础学习
- 最新文章
- 热门排行
推荐阅读
-
关于php内存不够用的快速解决方法
-
php下关于Cannot use a scalar value as an array的解决办法
-
关于PHP虚拟主机概念及如何选择稳定的PHP虚拟主机
-
PHP关于IE下的iframe跨域导致session丢失问题解决方法
-
做网络推广该如何分析并解决常遇到的问题
-
使用wordpress的$wpdb类读mysql数据库做ajax时出现的问题该如何解决
-
关于PHP中拿到MySQL中数据中的中文在网页上显示为?的解决办法!
-
如何解决cache/admin_logs.php文件不可写的问题?
-
如何解决开机提示"0x7c97cd12" 指令引用的 "0x00000014"内存。该内存不能为"writ
-
关于钱粮问题曹操和刘备分别是如何解决的?曹操比刘备直接多了!
网友评论
文明上网理性发言,请遵守 新闻评论服务协议
我要评论