#include #include

class Client : public QWidget { Q_OBJECT

public: Client(QWidget* parent = nullptr) : QWidget(parent) { QPushButton* connectButton = new QPushButton('连接'); textEdit = new QTextEdit;

    connect(connectButton, &QPushButton::clicked, this, &Client::connectToServer);

    QVBoxLayout* layout = new QVBoxLayout;
    layout->addWidget(connectButton);
    layout->addWidget(textEdit);

    setLayout(layout);
}

private slots: void connectToServer() { socket = new QTcpSocket(this);

    connect(socket, &QTcpSocket::connected, this, &Client::sendUserId);
    connect(socket, &QTcpSocket::readyRead, this, &Client::readSuggestion);
    connect(socket, &QTcpSocket::disconnected, socket, &QTcpSocket::deleteLater);

    socket->connectToHost('127.0.0.1', 8080);
}

void sendUserId() {
    int uid = 1;
    socket->write(reinterpret_cast<const char*>(&uid), sizeof(uid));
}

void readSuggestion() {
    QByteArray suggestion = socket->readAll();
    textEdit->setText(suggestion);
    socket->close();
}

private: QTextEdit* textEdit; QTcpSocket* socket; };

int main(int argc, char* argv[]) { QApplication app(argc, argv);

Client client;
client.show();

return app.exec();

}

Qt 网络编程:使用 QTcpSocket 实现简单的客户端

原文地址: https://www.cveoy.top/t/topic/fB8g 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录