- _socket = socket;
- connect(socket, SIGNAL(stateChanged(QAbstractSocket::SocketState)), SIGNAL(socketStateChanged(QAbstractSocket::SocketState)));
- connect(socket, SIGNAL(error(QAbstractSocket::SocketError)), SLOT(socketError(QAbstractSocket::SocketError)));
- connect(socket, SIGNAL(disconnected()), SIGNAL(disconnected()));
+ emit socketError(error, _socket->errorString());
+
+ if (!socket()->isOpen() || !socket()->isValid()) {
+ if (!_disconnectedSent) {
+ _disconnectedSent = true;
+ emit disconnected();
+ }
+ }