diff --git a/src/MaaCore/Controller/Platform/Win32IO.cpp b/src/MaaCore/Controller/Platform/Win32IO.cpp index e1125c0a18..4f4ef3384d 100644 --- a/src/MaaCore/Controller/Platform/Win32IO.cpp +++ b/src/MaaCore/Controller/Platform/Win32IO.cpp @@ -215,7 +215,16 @@ std::optional asst::Win32IO::call_command(const std::string& cmd, bool recv CloseHandle(pipe_parent_read); CloseHandle(pipeov.hEvent); if (recv_by_socket) { - if (!socket_eof) closesocket(client_socket); + if (accept_pending) { + Log.warn("cancel AcceptEx"); + CancelIoEx(reinterpret_cast(m_server_sock), &sockov); + closesocket(client_socket); + } + else if (!socket_eof) { + Log.warn("cancel ReadFile"); + CancelIoEx(reinterpret_cast(client_socket), &sockov); + closesocket(client_socket); + } CloseHandle(sockov.hEvent); }