php socket 为什么只能发送一次消息 有没有办法解决

fudg1211 2009-09-05 12:17:04
先看代码 从监听出开始贴代码

//开始监听
if(($ret=socket_listen($sock,4))<0)
{
echo "socket_listen() 失败的原因是:".socket_strerror($ret)."<br>";
}

do {
if (($msgsock = socket_accept($sock)) < 0)
{
echo "socket_accept() failed: reason: " . socket_strerror($msgsock) . "\n";
break;
}

//发到客户端
$msg ="<font color=red>欢迎进入服务器!</font><br>";
socket_write($msgsock, $msg, strlen($msg));

$buf = socket_read($msgsock,8192);
socket_write($msgsock, $buf, strlen($buf));

} while(true);
socket_close($sock);

客户端是用flex 现在问题是能够连接成功 从客户端第一次发送消息也能显示在客户端
但是客户端第二次发送消息的时候就没有了反应 以后都是
这应该不是客户端问题 所以只贴服务端代码
哪位高手能讲解下这个问题啊 在下不胜感激
...全文
240 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jerryyu810 2009-09-09
  • 打赏
  • 举报
回复
每次客户端建立连接的时候都是重新启用了一个新的进程,所以是这样了,你可以在第二次调用的时候连接你php程序创建的端口,进行通讯。
hotup 2009-09-09
  • 打赏
  • 举报
回复
少了个循环,你就照抄php手册上的那个吧..........php做这个只能玩下而已,,用C写服务器吧
YHL27 2009-09-09
  • 打赏
  • 举报
回复
学习!!
ms_X0828 2009-09-09
  • 打赏
  • 举报
回复
学习一下
fudg1211 2009-09-09
  • 打赏
  • 举报
回复
来个人结贴啊

再问下php6 有没有办法解决socket长连接问题

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧