php socket断开事件,php socket 怎么中断

我有php建个socket循环监听端口

while(true){

recv.....

}

现在麻烦了,这个页面F5重运行没效果了,端口一直被监听

我改的代码效果出不来

得重启机器才行

哇,每次都得这样,这样调试太麻烦啦

回复讨论(解决方案)

那你不处理监听的内容吗?

那你不处理监听的内容吗? 什么意思呀,处理啊

但是我改了while里的内容,客户端还返回的是原来的东西

关了网页(PHP),客户端还是那样返回

必须重启、接着重开服务端

就跟缓存了一样,不过我看了shell框,端口确实一直在listening

服务端该如何软重启呢,谢谢

既然你是处理客户端发来的数据的,那么你可以约定一个终止信号

当收到终止信号时就跳出循环并 socket_close 不就可以了吗

问题不清晰

理论上在while内捕捉一个条件,当满足是就break然后close就可以了

至于缓存问题这个比较怪,socket怎么会收到旧信息?

网页做这种内容时一般要设定即时过期(不缓存)以及自动刷新

你可以用 cli 模试调试呀

嗯,让客户端来发送终止消息,稍存一点安全问题,不过现在不用考虑啦,可以这样处理

To#4, 我说的缓存是比喻结果的现象,socket是带锁的,防重复启动;造成的原因就是socket启动后关不了,我不需要监听了也停不下来,没法调试服务端更新的内容;比方说,有人连上来了,发送个hello,我把hello改为hallo,不重启接收不到hallo,一直是hello

To#5,cli没听过哦,学习啦~

谢谢三位,结贴了

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值