服务器
1.1 mywnd.h
#ifndef MYWND_H
#define MYWND_H
#include <QWidget>
#include <QTcpServer>
#include <QDebug>
#include <QString>
#include <QTcpSocket>
#include <QList>
#include <QByteArray>
namespace Ui {
class MyWnd;
}
class MyWnd : public QWidget
{
Q_OBJECT
public:
explicit MyWnd(QWidget *parent = nullptr);
~MyWnd();
private slots:
void on_create_btn_clicked();
//自定义的处理新的连接的槽函数
void myslot_newconnection();
//自定义的读写数据的槽函数
void myslot_readyread();
//发送给每个人
void send_to_everyone(QByteArray);
private:
Ui::MyWnd *ui;
QTcpServer my_server;//服务器对象
quint16 port;//端口号
QList<QTcpSocket *> cliList;
};
#endif // MYWND_H
1.2 main.cpp
#include "mywnd.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MyWnd w;
w.show();
return a.exec();
}
1.3 mywnd.cpp
#include "mywnd.h"
#include "ui_mywnd.h"
MyWnd::MyWnd(QWidget *parent) :
QWidget(parent),
ui(new Ui::MyWnd),
my_server(this),
port(0)
{
ui->setupUi(this);
}
MyWnd::~MyWnd()
{
delete ui;
}
//创建服务器按钮对应的槽函数
void MyWnd::on_create_btn_clicked()
{
port = ui->lineEdit->text().toUShort();
bool ok = my_server.listen(QHostAddress::Any,port);
if(true == ok){
qDebug()<<"服务器创建成功";
}else{
qDebug()<<"服务器创建失败";
}
//如果创建服务器成功,就关联 newConnecti