0

如果客户端被关闭,QTcpSocket 是否会立即接收 stateChanged 信号?

4

2 回答 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 回答