[Solved] How to react to closed QTcpSocket
I make progess in my skills on how to communicate between sockets. Currently, I have implemented a server, that is inherited by QTcpServer. I react on the signal "new connection" after I start listening mode. Wenn new connection is called, take the nextPendingConnection Socket and store a point to it in a list of all connected sockets. Then I have a nice communication application with allows communication between different client (over the server), too.
The problem is: Is one of the clients is quit, in my implementation the server doesnt know that. So, if the server start to communicate with this client, I get some errors, as the socket is not connected anymore. I think of two solutions, but dont know how to realize either of them
When the server start to send data, check is the socket is still connected. How do I do that? QTcpSocket.isOpen() does not seems to do the job, as it results in "true" when the connected socket is closed....
Is there any signal I get catch on the server then a client is closed? Then I could simply clean up my list of "valid" clients. Any suggestions?
In my opinion the best way is using signal disconnected() from client's QTcpSocket.
use following slot for Disconnected signal at server side
QTcpSocket client = (QTcpSocket)sender();//it will point the client which would disconnected
hope it helps :)
Yeah, it really solved the problem. Thanks a lot!