最近自己在折腾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 版权协议,转载请附上原文出处链接和本声明。