QT中 实现一个服务端接收两个客户端的解决方法

  • Post author:
  • Post category:其他


最近自己在折腾QT中实现TCP服务端的过程中,发现以往的例子都是点对点的,也就是说大都是一个客户端,一个服务端,然后两个进行通信,而对于单个服务端与多个客户端的通信,非常稀少,找到一个但对于我们新手来说,有点复杂,不好理解,下面我介绍一个新手也能明白的一种解决方案。

下面是mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QTcpServer>
#include <QTcpSocket>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private slots:
    void on_pushButton_listen_clicked();

    void on_pushButton_send_clicked();

    void ClientReadData(/*int clientID,QString IP,int Port,QByteArray data*/);


    void server_New_Connect();

    void socket_Read_Data();

    void socket2_Read_Data();

    void socket_Disconnected();

private:
    Ui::MainWindow *ui;
    QTcpServer* server;
    QTcpSocket* socket;
    QTcpSocket* socket2;
};

#endif // MAINWINDOW_H

下面是main.cpp

#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}

下面是mainwindow.cpp




版权声明:本文为zhixi3134原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。