行业知识
#QT(TCP网络编程-客户端)
2026-11-06 23:45:26
来源:互联网转载
1.IDE:QTCreator
2.实验
3.记录
(1)做一个客���端UI界面(注意改标签名字,后面方便关联函数)
(2)编写客户端代码,代码编写完成之后,测试
a.cmd打开命令行
b.键入ipconfig,常看IPV4地址,然后同时打开客户端和服务端,将IPV4地址输入给客户端,然后端口选择一样即可,如果不行可以换其他端口试试
c.运行效果
4.代码
pro文件
QT += core gui networkgreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsCONFIG += c++17# You can make your code fail to compile if it uses deprecated APIs.# In order to do so, uncomment the following line.#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0SOURCES += \ main.cpp \ widget.cppHEADERS += \ widget.hFORMS += \ widget.ui# Default rules for deployment.qnx: target.path = /tmp/$${TARGET}/binelse: unix:!android: target.path = /opt/$${TARGET}/bin!isEmpty(target.path): INSTALLS += target widget.h
#ifndef WIDGET_H#define WIDGET_H#include #include QT_BEGIN_NAMESPACEnamespace Ui {class Widget;}QT_END_NAMESPACEclass Widget : public QWidget{ Q_OBJECTpublic: Widget(QWidget *parent = nullptr); ~Widget(); QTcpSocket *tcpsocket; //创建一个指针对象private slots: void on_openclient_pb_clicked(); void connected_slot(); //连接成功关联处理函数 void readyRead_slot(); //准备读关联处理函数 void on_closeclient_pb_clicked(); void on_send_pb_clicked();private: Ui::Widget *ui;};#endif // WIDGET_H widget.cpp
#include "widget.h"#include "ui_widget.h"Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget){ ui->setupUi(this); tcpsocket=new QTcpSocket(this);}Widget::~Widget(){ delete ui;}void Widget::on_openclient_pb_clicked() //打开客户端按钮点击时处理函数{ tcpsocket->connectToHost(ui->ip_line->text(),ui->port_line->text().toUInt()); //连接指定ip地址的指定端口 connect(tcpsocket,SIGNAL(connected()),this,SLOT(connected_slot())); //关联连接成功处理函数}void Widget::connected_slot(){ connect(tcpsocket,SIGNAL(readyRead()),this,SLOT(readyRead_slot()));}void Widget::readyRead_slot(){ ui->receive_line->appendPlainText(tcpsocket->readAll()); //在接收区显示所有接收到的数据}void Widget::on_closeclient_pb_clicked() //关闭客户端按钮按下处理函数{ tcpsocket->close();}void Widget::on_send_pb_clicked() //发送按钮按下时处理函数{ tcpsocket->write(ui->send_line->text().toLocal8Bit().data());}
上一篇:怎么在服务器做商店开发?
下一篇:toddler怎么读音发音英语?