我在使用Perl服务器的套接字时遇到了一些问题。
如何知道一个(非阻塞)客户端已经断开连接? 在C语言中,我习惯于这样做:
if (recv(sock, buff, size, flags) == 0) {
printf("Client disconnected\n";
}
对于Python或其他语言相应的功能,recv
返回-1表示没有数据可用,0表示客户端退出,正数表示可以读取数据。
但是,Perl的recv
并不是这样工作的,使用$data = <$sock>
似乎没有任何方式可以知道。
是否有(简单的)方法?