Home >Backend Development >PHP Tutorial >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没听过哦,学习啦~
谢谢三位,结贴了