>백엔드 개발 >PHP 튜토리얼 >php socket 怎么中断

php socket 怎么中断

WBOY
WBOY원래의
2016-06-23 13:59:021005검색

我有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으로 문의하세요.