现在设计客户端,服务端设计请参考地址:Qt实现局域网简易通信(一)
同样先来看界面:
通过连接服务器的IP和端口号连接服务器,并能发送消息至服务器。
同样,先在.pro文件里添加网络模块
QT += core gui network
widget.h文件代码
#ifndef WIDGET_H
#define WIDGET_H
#include
#include
#include
#include
#include
#include <QtCore/QObject>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
private slots:
void on_But_socket_lianjie_clicked();
void on_Btn_socket_send_clicked();
void oneProcessConnected(); //连接成功函数
void oneProcessReadyRead(); //读取服务器信息函数
void oneProcessDisconnected(); //服务器断开函数
void oneProcessError(QAbstractSocket::SocketError err); //出错函数
private:
Ui::Widget *ui;
QTcpSocket *myClient; //定义客户端对象
void InitSocket(); //初始化客户端函数
};
#endif // WIDGET_H
widget文件代码
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
InitSocket();
}
Widget::~Widget()
{
delete ui;
}
void Widget::InitSocket()
{
myClient = new QTcpSocket(this); //分配空间
}
//连接服务器槽函数
void Widget::on_But_socket_lianjie_clicked()
{
QString serveIP = ui->Edit_serve_IP->text(); //获取服务器IP
QString servePort = ui->Edit_serve_Port->text(); //获取服务器端口号
myClient->connectToHost(QHostAddress(serveIP),servePort.toInt()); //连接服务器
//myClient->connectToHost("192.168.85.1",10086);
connect(myClient,SIGNAL(connected()),this,SLOT(oneProcessConnected())); //连接成功
connect(myClient,SIGNAL(readyRead()),this,SLOT(oneProcessReadyRead())); //读取服务器信息数据
connect(myClient,SIGNAL(disconnected()),this,SLOT(oneProcessDisconnected())); //服务器断开
connect(myClient,SIGNAL(error(QAbstractSocket::SocketError)),this,SLOT(oneProcessError(QAbstractSocket::SocketError))); //出错函数
}
//连接成功函数
void Widget::oneProcessConnected()
{
QString msg = QString("谢天谢地,可算是连上服务器了!");
ui->textEdit_serve->append(msg);
}
//读取服务器信息函数
void Widget::oneProcessReadyRead()
{
QString msg,str1,str2;
str1 = QString("服务器[%1:%2] 说:").arg(myClient->peerAddress().toString()).arg(myClient->peerPort());
while(!myClient->atEnd())
{
str2.append(QString(myClient->readAll()));
}
msg = QString("%1%2").arg(str1).arg(str2);
ui->textEdit_serve->append(msg);
}
//服务器断开函数
void Widget::oneProcessDisconnected()
{
QString msg = "服务器退出 ";
ui->textEdit_serve->append(msg);
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新