console: add basic code.

This commit is contained in:
2025-06-20 17:21:58 +08:00
parent 6aea5f6614
commit 61aee68800
6 changed files with 98 additions and 5 deletions

View File

@@ -12,8 +12,8 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core Network) find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core Network)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Network) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Network)
add_executable(frelayConsole Console.h Console.cpp main.cpp ../Res/ico.rc) add_executable(frelayConsole Console.h Console.cpp main.cpp Helper.h Helper.cpp ../Res/ico.rc)
target_link_libraries(frelayConsole PRIVATE Protocol Util) target_link_libraries(frelayConsole PRIVATE Protocol Util ClientCore)
if(NOT DEFINED COMPILER_USE_MINGW) if(NOT DEFINED COMPILER_USE_MINGW)
target_link_libraries(frelayConsole PRIVATE crashelper) target_link_libraries(frelayConsole PRIVATE crashelper)

View File

@@ -1 +1,9 @@
#include "Console.h" #include "Console.h"
RelayConsole::RelayConsole(QObject* parent) : QObject(parent)
{
}
RelayConsole::~RelayConsole()
{
}

View File

@@ -1,9 +1,15 @@
#ifndef FRELAY_CONSOLE_H #ifndef FRELAY_CONSOLE_H
#define FRELAY_CONSOLE_H #define FRELAY_CONSOLE_H
class RelayConsole #include <ClientCore.h>
{
class RelayConsole : public QObject
{
Q_OBJECT
public:
RelayConsole(QObject* parent = nullptr);
~RelayConsole() override;
}; };
#endif // FRELAY_CONSOLE_H #endif // FRELAY_CONSOLE_H

38
Console/Helper.cpp Normal file
View File

@@ -0,0 +1,38 @@
#include "Helper.h"
ConsoleHelper::ConsoleHelper(QObject* parent) : QObject(parent)
{
}
ConsoleHelper::~ConsoleHelper()
{
}
void ConsoleHelper::RunWorker(ClientCore* clientCore)
{
clientCore_ = clientCore;
sockWorker_ = new SocketWorker(clientCore_, nullptr);
clientCore_->moveToThread(sockWorker_);
connect(clientCore_, &ClientCore::conSuccess, this, [this]() { qInfo() << QString(tr("Connected.")); });
connect(clientCore_, &ClientCore::conFailed, this, [this]() { qInfo() << QString(tr("Connect failed.")); });
connect(clientCore_, &ClientCore::connecting, this, [this]() { qInfo() << QString(tr("Connecting...")); });
connect(clientCore_, &ClientCore::sigDisconnect, this, [this]() { qInfo() << QString(tr("Disconnected.")); });
connect(this, &ConsoleHelper::sigDoConnect, clientCore_, &ClientCore::DoConnect);
connect(sockWorker_, &QThread::finished, sockWorker_, &QObject::deleteLater);
sockWorker_->start();
}
void ConsoleHelper::SetIpPort(const QString& ip, quint16 port)
{
ip_ = ip;
port_ = port;
qDebug() << "SetIpPort:" << ip_ << port_;
}
void ConsoleHelper::Connect()
{
emit sigDoConnect(ip_, port_);
}

29
Console/Helper.h Normal file
View File

@@ -0,0 +1,29 @@
#ifndef CONSOLE_HELPER_H
#define CONSOLE_HELPER_H
#include <ClientCore.h>
class ConsoleHelper : public QObject
{
Q_OBJECT
public:
ConsoleHelper(QObject* parent = nullptr);
~ConsoleHelper() override;
public:
void RunWorker(ClientCore* clientCore);
void SetIpPort(const QString& ip, quint16 port);
void Connect();
signals:
void sigDoConnect(const QString& ip, quint16 port);
private:
QString ip_;
quint16 port_{};
SocketWorker* sockWorker_{};
ClientCore* clientCore_;
};
#endif // CONSOLE_HELPER_H

View File

@@ -2,6 +2,7 @@
#include <Util.h> #include <Util.h>
#include "Console.h" #include "Console.h"
#include "Helper.h"
#ifndef COMPILER_USE_MINGW #ifndef COMPILER_USE_MINGW
#include <crashelper.h> #include <crashelper.h>
@@ -9,6 +10,10 @@
int main(int argc, char* argv[]) int main(int argc, char* argv[])
{ {
if (argc < 3) {
std::cerr << "Usage arg is ip port." << std::endl;
return 0;
}
#ifndef COMPILER_USE_MINGW #ifndef COMPILER_USE_MINGW
auto configDir = Util::GetCurConfigPath("frelay"); auto configDir = Util::GetCurConfigPath("frelay");
@@ -25,5 +30,12 @@ int main(int argc, char* argv[])
Util::InitLogger("frelayConsole.log", "frelayConsole"); Util::InitLogger("frelayConsole.log", "frelayConsole");
qInstallMessageHandler(Util::ConsoleMsgHander); qInstallMessageHandler(Util::ConsoleMsgHander);
auto* core = new ClientCore();
auto* helper = new ConsoleHelper();
helper->SetIpPort(argv[1], QString("%1").arg(argv[2]).toInt());
helper->RunWorker(core);
helper->Connect();
return app.exec(); return app.exec();
} }