首頁 >後端開發 >php教程 >php socket 怎么中断

php socket 怎么中断

WBOY
WBOY原創
2016-06-23 13:59:021007瀏覽

我有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没听过哦,学习啦~
谢谢三位,结贴了

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn