Qt Tcp通讯客户端

.h 代码:
#pragma once

#include <QWidget>
#include "ui_QtClientWidget.h"
#include <QTcpSocket>

class QtClientWidget : public QWidget
{
	Q_OBJECT

public:
	QtClientWidget(QWidget *parent = Q_NULLPTR);
	~QtClientWidget();

private slots:
	void slotConnect();
	void slotSend();
	void slotClose();

private:
	Ui::QtClientWidget ui;
	QTcpSocket *tcpSocket;
};
cpp 代码:
#include "QtClientWidget.h"

QtClientWidget::QtClientWidget(QWidget *parent)
	: QWidget(parent)
{
	ui.setupUi(this);
	tcpSocket = nullptr;
	tcpSocket = new QTcpSocket(this);
	setWindowTitle(QString::fromLocal8Bit("客户端"));

	connect(ui.pushButton_Send, &QPushButton::clicked, this, &QtClientWidget::slotSend);
	connect(ui.pushButton_Close, &QPushButton::clicked, this, &QtClientWidget::slotClose);
	connect(ui.pushButton_Connect, &QPushButton::clicked, this, &QtClientWidget::slotConnect);

	//如果成功和对方建立连接,通讯套接字会主动触发 &QTcpSocket::connected 信号 
	//如果对方主动断开连接, 通讯套接字会主动触发 &QTcpSocket::disconnected 信号
	connect(tcpSocket, &QTcpSocket::connected, [=]() {
		ui.textEdit_Read->setText(QString::fromLocal8Bit("成功和服务器建立连接"));
	});
	//如果收到发过来的数据,会触发 &QTcpSocket::readyRead 信号
	connect(tcpSocket, &QTcpSocket::readyRead, [=]() {
		//获取对方发送的内容
		QByteArray array = tcpSocket->readAll();
		ui.textEdit_Read->append(array);
	});
}

QtClientWidget::~QtClientWidget()
{
}
void QtClientWidget::slotConnect()
{
	//获取服务IP和端口
	QString IP = ui.lineEdit_IP->text();
	qint16 port = ui.lineEdit_Port->text().toInt();

	//主动和服务器建立连接
	tcpSocket->connectToHost(IP, port);
}
void QtClientWidget::slotSend()
{
	//获取编辑框的内容
	QString str = ui.textEdit_Write->toPlainText();
	//发送数据
	tcpSocket->write(str.toUtf8().data());
	//发送数据成功后,清楚数据
	ui.textEdit_Write->clear();
}
void QtClientWidget::slotClose()
{
	//主动和对方断开连接
	tcpSocket->disconnectFromHost();
	tcpSocket->close();
}
树莓派是一种小型的单板计算机,具有强大的处理能力和丰富的接口,因此非常适合用于构建各种物联网设备和嵌入式系统。Qt是一种跨平台的应用程序开发框架,可以帮助我们方便地开发图形化界面和网络通讯功能。 在树莓派上使用Qt进行TCP通讯,可以通过以下步骤进行操作: 第一步是在树莓派上安装Qt开发环境。你可以从Qt官方网站上下载适合树莓派系统的Qt安装包,并按照官方文档的指导进行安装。安装完成后,你就可以在树莓派上使用Qt进行开发了。 第二步是编写TCP通讯的代码。你可以使用Qt提供的Qt Network模块,通过创建QTcpServer和QTcpSocket对象来实现TCP的服务器和客户端功能。在服务器,你可以使用QTcpServer监听指定的口,并在有客户端连接时接受连接请求,然后通过QTcpSocket与客户端进行数据交换。在客户端,你可以创建一个QTcpSocket对象,指定服务器的IP地址和口号,然后通过QTcpSocket与服务器建立连接并进行数据交换。 第三步是测试和调试代码。你可以在树莓派上运行编写好的Qt程序,并使用其他设备或工具来模拟服务器或客户端,以验证TCP通讯功能是否正常。在调试过程中,你可以使用Qt提供的调试工具和函数来定位和解决问题,确保通讯的稳定性和可靠性。 总的来说,使用Qt进行TCP通讯可以让树莓派实现与其他设备的数据交互,从而实现更多的应用场景和功能。通过合理的设计和编程,你可以构建出稳定、高效的TCP通讯系统,满足自己的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值