QWebSocket服务器

在pro文件里面添加websockets模块

QT       += websockets

在头文件里面添加include声明

#include <QtWebSockets>

.h文件实现

class Widget : public QWidget
{
    Q_OBJECT

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

private slots:
    void on_btnListen_clicked();
    void newConnection();
    void recvData(QString data);

private:
    Ui::Widget *ui;
    QWebSocket *webclient;
    QWebSocketServer *webserver;
};

构造函数里面关联信号槽

    webserver = new QWebSocketServer("webserver", QWebSocketServer::NonSecureMode, this);
    connect(webserver, SIGNAL(newConnection()), this, SLOT(newConnection()));

.cpp文件实现

void Widget::on_btnListen_clicked()
{
    QString ip = ui->txtIP->text();
    QString port = ui->txtPort->text();
    if(webserver->listen(QHostAddress(ip), port.toInt())){
        ui->textEdit->append("webserver listen success");
        ui->textEdit->append(QString("listen url:%1").arg(webserver->serverUrl().toString()));
    }else{
        ui->textEdit->append("webserver listen failed");
    }
}

void Widget::newConnection()
{
    while(webserver->hasPendingConnections())
    {
        webclient = webserver->nextPendingConnection();
        disconnect(webclient, SIGNAL(textMessageReceived(QString)), this, SLOT(recvData(QString)));
        connect(webclient, SIGNAL(textMessageReceived(QString)), this, SLOT(recvData(QString)));
        ui->textEdit->append(QString("new client:%1[%2]").arg(webclient->peerAddress().toString()).arg(webclient->peerPort()));
    }
}

void Widget::recvData(QString data)
{
    ui->textEdit->append(data);
    webclient->sendTextMessage("recv ok");
}

源码下载:https://download.csdn.net/download/cqchengdan/11243194

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值