카테고리 없음
댕팡 - 클라이언트 코드
joo_coding
2025. 5. 31. 20:10
클라이언트 2개 - [가게/고객]
현재 시뮬레이션 가능한 기능: 회원가입
< client1>
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "json.hpp"
#include <QTcpSocket>
#include <QMessageBox>
#include <QDateTime>
#include <QString>
using json = nlohmann::json;
using namespace std;
QString now = QDateTime::currentDateTime().toString("yyyy-MM-dd");
json sendAndReceive(QTcpSocket& socket, const json& request) {
QByteArray data = QByteArray::fromStdString(request.dump());
socket.write(data);
socket.waitForBytesWritten();
socket.waitForReadyRead();
QByteArray responseData = socket.readAll();
return json::parse(responseData.toStdString());
}
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
this->conncetsetting();
socket.connectToHost("127.0.0.1", 9957);
}
void MainWindow :: uisetting(){
}
void MainWindow :: conncetsetting(){
connect(ui->login_btn, &QPushButton::clicked , this , &MainWindow::login_btnclicked);
}
void MainWindow :: login_btnclicked(){
// QString id = ui->id_line->text();
json j;
j["action"] = "signup";
j["data"] = {
{"USER_ID","HUB"},
{"USER_NAME", "김유범"},
{"USER_PW", "1234"},
{"USER_PHONE", "010-1234-5678"},
{"USER_ROLE", 1},
{"USER_CREATE_DATE",now.toStdString()}
};
j["data"]["USER_ID"] = "GOD준영";
// 5. 응답 JSON 파싱
json response = sendAndReceive(socket,j);
qDebug() << QString::fromStdString(response.dump(4));
if(response["status"] == "success"){
QMessageBox::information(this,"아아", "메롱");
}
}
MainWindow::~MainWindow()
{
delete ui;
}
// SecondUI.h
// signals:
// void openThirdUI(); // 사용자 정의 신호
// // SecondUI.cpp
// void SecondUI::on_someButton_clicked() {
// emit openThirdUI(); // 신호 발생
// }
// mainwindow.h
// private:
// SecondUI *secondUI;
// ThirdUI *thirdUI;
// // MainWindow.cpp
// SecondUI *second = new SecondUI;
// ThirdUI *third = new ThirdUI;
// secondUI->show();
// connect(second, &SecondUI::openThirdUI, this, [=]() {
// third->show(); // 메인윈도우가 ThirdUI를 열어줌
// });
< client2 >
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "json.hpp"
#include <QTcpSocket>
#include <QMessageBox>
#include <QDateTime>
#include <QString>
using json = nlohmann::json;
using namespace std;
QString now = QDateTime::currentDateTime().toString("yyyy-MM-dd");
json sendAndReceive(QTcpSocket& socket, const json& request) {
QByteArray data = QByteArray::fromStdString(request.dump());
socket.write(data);
socket.waitForBytesWritten();
socket.waitForReadyRead();
QByteArray responseData = socket.readAll();
return json::parse(responseData.toStdString());
}
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
this->conncetsetting();
socket.connectToHost("127.0.0.1", 9957);
}
void MainWindow :: uisetting(){
}
void MainWindow :: conncetsetting(){
connect(ui->login_btn, &QPushButton::clicked , this , &MainWindow::login_btnclicked);
}
void MainWindow :: login_btnclicked(){
// QString id = ui->id_line->text();
json j;
j["action"] = "signup";
j["data"] = {
{"USER_ID","HUB"},
{"USER_NAME", "김유범"},
{"USER_PW", "1234"},
{"USER_PHONE", "010-1234-5678"},
{"USER_ROLE", 1},
{"USER_CREATE_DATE",now.toStdString()}
};
j["data"]["USER_ID"] = "GOD준영";
// 5. 응답 JSON 파싱
json response = sendAndReceive(socket,j);
qDebug() << QString::fromStdString(response.dump(4));
if(response["status"] == "success"){
QMessageBox::information(this,"아아", "메롱");
}
}
MainWindow::~MainWindow()
{
delete ui;
}
// SecondUI.h
// signals:
// void openThirdUI(); // 사용자 정의 신호
// // SecondUI.cpp
// void SecondUI::on_someButton_clicked() {
// emit openThirdUI(); // 신호 발생
// }
// mainwindow.h
// private:
// SecondUI *secondUI;
// ThirdUI *thirdUI;
// // MainWindow.cpp
// SecondUI *second = new SecondUI;
// ThirdUI *third = new ThirdUI;
// secondUI->show();
// connect(second, &SecondUI::openThirdUI, this, [=]() {
// third->show(); // 메인윈도우가 ThirdUI를 열어줌
// });