欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php socket 怎么中断

程序员文章站 2022-06-03 19:37:57
...
我有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没听过哦,学习啦~
谢谢三位,结贴了