php套接字C/S通信 服务端无法接收客户端的信息

php中文网
发布: 2016-06-23 13:07:33
原创
1036人浏览过

// 建立客户端的socet连接  
$socket = socket_create(af_inet, sock_stream, sol_tcp);  
  //连接服务器端socket  
$connection = socket_connect($socket, '192.168.142.27', 10008);   
//要发送到服务端的信息。
$info='hello world';
while($connection)
{
 socket_write($socket, "$info");
 break;
}
?>

如果不加break服务端可以接收到信息,但是是一连串的‘hello world’;

加break则怎么也收不到信息;

初学者,希望好心人解答!谢谢!

微信 WeLM
微信 WeLM

WeLM不是一个直接的对话机器人,而是一个补全用户输入信息的生成模型。

微信 WeLM 33
查看详情 微信 WeLM


回复讨论(解决方案)

你都退出循环并终止了程序,并且也没有接收服务端返回数据的代码
那么你怎么知道服务端没有收到数据的


break; 去掉才可以,因为你程序退出了就不能收到数据了。

接收代码有:

$tcp = getprotobyname("tcp");   
// 建立server端socket ,创建并返回一个套接字,也称作一个通讯节点。一个典型的网络连接由 2 个套接字构成,一个运行在客户端,另一个运行在服务器端。 
$socket = socket_create(AF_INET, SOCK_STREAM, $tcp);  
//绑定要监听的ip和端口,这里绑定的ip一定要写局域网ip,写成127.0.0.1客户端将无法与服务端建议连接。 
socket_bind($socket, '192.168.142.27', 10008);     
 //监听端口     
socket_listen($socket);  
$connection = socket_accept($socket); 
$data='';
$count=0;
while ($connection)
{
$data=@socket_read($connection,1024,PHP_NORMAL_READ);
printf("Buffer: " . $data . "\n");
break;
}
?>   
   
发现如果while循环超过一定次数接收端会收到一连串“hello”,但当循环次数少于这个数值时,接收端什么数据也收不到(我这次这个数值时204),请问这是什么情况?

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号