add: spdlog and basic client code.

This commit is contained in:
2025-06-14 23:25:16 +08:00
parent 16572fa29c
commit 3f74ca3b1b
116 changed files with 26940 additions and 4 deletions

25
ClientCore/CMakeLists.txt Normal file
View File

@@ -0,0 +1,25 @@
cmake_minimum_required(VERSION 3.16)
project(ClientCore LANGUAGES CXX)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core Network)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Network)
set(SOURCES
ClientCore.cpp
ClientCore.h
)
add_library(ClientCore STATIC ${SOURCES})
target_link_libraries(ClientCore PRIVATE Protocol
Qt${QT_VERSION_MAJOR}::Core
Qt${QT_VERSION_MAJOR}::Network
)
target_include_directories(ClientCore PUBLIC ${CMAKE_CURRENT_LIST_DIR})

30
ClientCore/ClientCore.cpp Normal file
View File

@@ -0,0 +1,30 @@
#include "ClientCore.h"
#include <QDebug>
ClientCore::ClientCore(QObject* parent) : QObject(parent)
{
}
ClientCore::~ClientCore()
{
}
bool ClientCore::Connect(const QString& ip, quint16 port)
{
QMutexLocker locker(&conMutex_);
if (!locker.isLocked()) {
qWarning() << QString(tr("%1:%2 already connecting...")).arg(ip).arg(port);
return false;
}
socket_->connectToHost(ip, port);
if (!socket_->waitForConnected(3000)) {
qCritical() << QString(tr("%1:%2 connect failed...")).arg(ip).arg(port);
return false;
}
return true;
}
void ClientCore::Disconnect()
{
}

35
ClientCore/ClientCore.h Normal file
View File

@@ -0,0 +1,35 @@
#ifndef CLIENTCORE_H
#define CLIENTCORE_H
#include <Protocol.h>
#include <QDataStream>
#include <QHostAddress>
#include <QMutex>
#include <QMutexLocker>
#include <QTcpSocket>
#include <QThread>
class ClientCore : public QObject
{
Q_OBJECT
public:
ClientCore(QObject* parent = nullptr);
~ClientCore();
public:
bool Connect(const QString& ip, quint16 port);
void Disconnect();
public:
QTcpSocket* socket_;
QMutex conMutex_;
// QSharedPointer<ClientUserInterface> cf;
std::function<void(const QString& path)> pathCall_;
QString remoteID_;
QByteArray recvBuffer_;
};
#endif // CLIENTCORE_H