页面展示:
实现思路:
首先使用QTcpserver绑定主机并监听端口,将连入的socket放入列表供随时调取。
然后使用QTcpsocket创建服务端的socket套接字,连接主机,从而随时使用socket向主机端发送信息。
.h文件展示
客户端:
#ifndef TCPCLIENT_H
#define TCPCLIENT_H
#include <QMainWindow>
#include <QTcpSocket>
#include <QHostAddress>
QT_BEGIN_NAMESPACE
namespace Ui { class Tcpclient; }
QT_END_NAMESPACE
class Tcpclient : public QMainWindow
{
Q_OBJECT
public:
Tcpclient(QWidget *parent = nullptr);
~Tcpclient();
private slots:
void on_btn_connect_clicked();
void doProcessConnected();
void doProcessReadyRead();
void doProcessDisConnected();
void doProcessError(QAbstractSocket::SocketError);
void on_btn_send_clicked();
private:
Ui::Tcpclient *ui;
void init();
QTcpSocket* myclient;
};
#endif // TCPCLIENT_H
服务器端:
#ifndef TCPSERVER_H
#define TCPSERVER_H
#include <QMainWindow>
#include <QTcpServer>
#include <QTcpSocket>
#include <QNetworkInterface>
#include <QList>
QT_BEGIN_NAMESPACE
namespace Ui { class tcpserver; }
QT_END_NAMESPACE
class tcpserver : public QMainWindow
{
Q_OBJECT
public:
tcpserver(QWidget *parent = nullptr);
~tcpserver();
private slots:
void on_btn_connect_clicked();
void doprocessOnConnect();
void doprocessOnConnectError(QAbstractSocket::SocketError);
void doprocessOnDisconnect();
void doprocessOnReadyRead();
void on_btn_send_clicked();
void doprocessOnConnected();
private:
Ui::tcpserver *ui;
QTcpServer* myserver;
QList<QTcpSocket*>clients;
void init();
};
#endif // TCPSERVER_H