diff --git a/QtScrcpy/device/server/server.cpp b/QtScrcpy/device/server/server.cpp index 21237a8..d3a98f6 100644 --- a/QtScrcpy/device/server/server.cpp +++ b/QtScrcpy/device/server/server.cpp @@ -10,7 +10,8 @@ #define DEVICE_SERVER_PATH "/data/local/tmp/scrcpy-server.jar" #define DEVICE_NAME_FIELD_LENGTH 64 #define SOCKET_NAME "qtscrcpy" -#define MAX_CONNECT_COUNT 20 +#define MAX_CONNECT_COUNT 30 +#define MAX_RESTART_COUNT 1 Server::Server(QObject *parent) : QObject(parent) { @@ -385,6 +386,7 @@ result: // we don't need the adb tunnel anymore disableTunnelForward(); m_tunnelEnabled = false; + m_restartCount = 0; emit connectToResult(success, deviceName, deviceSize); return; } @@ -399,7 +401,13 @@ result: if (MAX_CONNECT_COUNT <= m_connectCount++) { stopConnectTimeoutTimer(); stop(); - emit connectToResult(false); + if (MAX_RESTART_COUNT > m_restartCount++) { + qWarning("restart server auto"); + start(m_params); + } else { + m_restartCount = 0; + emit connectToResult(false); + } } } diff --git a/QtScrcpy/device/server/server.h b/QtScrcpy/device/server/server.h index 6d6fda1..2e4d55f 100644 --- a/QtScrcpy/device/server/server.h +++ b/QtScrcpy/device/server/server.h @@ -86,6 +86,7 @@ private: quint32 m_acceptTimeoutTimer = 0; quint32 m_connectTimeoutTimer = 0; quint32 m_connectCount = 0; + quint32 m_restartCount = 0; QString m_deviceName = ""; QSize m_deviceSize = QSize(); ServerParams m_params;