如果客户端被关闭,QTcpSocket 是否会立即接收 stateChanged 信号?
问问题
808 次
2 回答
3
您可以在服务器端使用客户端信号 (disconnected()) 来接收状态更改信号。
例如:
在服务器端
connect(client, SIGNAL(disconnected()), this, SLOT(funcA()));
//to recieve a signal immediately when client is shutdown
connect(client, SIGNAL(connected()), this, SLOT(funcB()));
// to recieve a signal immediately when client is connected
希望这会帮助你。
于 2012-08-30T23:50:46.703 回答
1
如果套接字的远程端已关闭,则它变得可读,并且从它读取时您将收到零字节。从套接字读取是检测远程端是否已正常关闭的正确方法。
所以要回答你的问题,我猜当远程端关闭时不会stateChange
立即调用信号,因为在你尝试从套接字读取之前无法知道这一点。
于 2012-08-30T10:17:13.330 回答