Qt 网络编程:使用 QTcpSocket 实现简单的客户端
#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();
}
原文地址: https://www.cveoy.top/t/topic/fB8g 著作权归作者所有。请勿转载和采集!