一个socket_accept 初级问题

var

服务端socket_accept

while(1){
    $this->socket = socket_accept($this->listend);
    $this->log((int)$socket);
    if((int)$socket<0){
        $this->log('accept error');
        return -1;
    }
    if(socket_getpeername($socket,$addr,$port)){
        $this->log("client:$addr - $port");
    }

    $this->buf = date('Y-m-d',time());

    sleep(5);
}
return 0;

让我困惑的是socket_accept这里,当我一个客户端用telnet 连接,没问题一直处于连接状态,再开一个客户端连接后,第一个就没任何提示的退出来了(Connection closed by foreign host.) ,while循环里并没有socket_close()

3617 1 0
1个回答

walkor

因为 $this->socket 被重新赋值了,原来存储的socket连接被析构了,自动关闭了。

  • 暂无评论
年代过于久远,无法发表回答
🔝