QTcpServer QTcpScoket通讯

最近需要一个数据转发的程序,昨天快下班之前看了QTcpServer和QTcpSocket模块,边看文档,边写了一个发送消息的demo。下完就下班了,今天早晨来测试,发现没什么问题。
QTcpServer 和QtcpSocket的封装,让我们写这类程序变得非常的简单了。

  1. 实例化一个QTcpServer对象,启动监听程序来监听某个端口。
  2. 有连接过来后,建立连接,然后通过这个链接进行通讯
    因为QTcpSocket继承自QIOdevice 所以可以通过流的方式来操作,可以进行读写。

好了,先看看我写的demo的服务端
界面是随便的拖了一个按钮,堆起来的。
服务端界面

.h文件代码
#ifndef TCPSERVICETESTDLG_H
#define TCPSERVICETESTDLG_H

#include <QDialog>
#include <QMap>

class QTcpServer;
class QTcpSocket;

namespace Ui {
class TCPServiceTestDlg;
}

class TCPServiceTestDlg : public QDialog
{
    Q_OBJECT
public:
    explicit TCPServiceTestDlg(QWidget *parent = 0);
    ~TCPServiceTestDlg();
private:
    void handleSendData(QTcpSocket * socket,const QString& msg); //处理发送数据
private slots:
    void on_tb_start_clicked();//开始监听
    //停止监听
    void on_tb_stop_clicked();
    //发送数据
    void on_pb_send_clicked();
protected slots:
    void slot_handleNewConnection();//处理连接
    void slot_handleReciveData(); //接收数据
    void slot_handleDisconnectSocket();//处理断开连接
private:
    Ui::TCPServiceTestDlg *ui;
    QTcpServer * server;
    QMap<QString,QTcpSocket *> socketMap; //记录链接进来的ip
};

#endif // TCPSERVICETESTDLG_H


.cpp代码
#include "TCPServiceTestDlg.h"
#include "ui_TCPServiceTestDlg.h"
#include <QTcpServer>
#include <QTcpSocket>
#include <QDateTime>

TCPServiceTestDlg::TCPServiceTestDlg(QWidget *parent) :
    QDialog(pa
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值