qt tcp socket简单的通信程序

原创 2016年06月01日 12:07:41
  1. socket通信分为server端与client端,基于tcp的需要首先建立server-client的连接,然后才能通信。
  2. 客户端程序如下:
  3. 在QT上建立一个widget界面程序,在界面中添加一个button和LineEdite,分别命名为sendButton、inputLine;LineEdit是客户端输入,点击button发送输入内容。
  4. 在工程文件中加入 QT +=network
  5. 客户端的mywidget.h
  6. #ifndef MYWIDGET_H
    #define MYWIDGET_H


    #include <QWidget>
    #include <QtNetwork>


    namespace Ui {
    class myWidget;
    }


    class myWidget : public QWidget
    {
        Q_OBJECT
        
    public:
        explicit myWidget(QWidget *parent = 0);
        ~myWidget();
        
    private:
        Ui::myWidget *ui;
        QTcpSocket *client;
        const char *data;
    private slots:
        void senddata();
    };


    #endif // MYWIDGET_H
  7. 客户端的mywidget.cpp
  8. :#include "mywidget.h"
    #include "ui_mywidget.h"


    myWidget::myWidget(QWidget *parent) :
        QWidget(parent),
        ui(new Ui::myWidget)
    {
        ui->setupUi(this);
        client = new QTcpSocket(this);
        client->connectToHost(QHostAddress("10.9.3.95"),5000);
        connect(ui->sendButton,SIGNAL(clicked()),this,SLOT(senddata()));
    }


    myWidget::~myWidget()
    {
        delete ui;
    }


    void myWidget::senddata()
    {
        data=ui->inputLine->text().toStdString().c_str();
        client->write(data);
        ui->inputLine->setText("send ok!");
    }
  9. 服务端:服务端本程序中只用来接收客户端发送来的消息,在server的界面中添加一个label用来提示是否有客户端连接;添加一个LineEdit用来输出服务端接收到的
  10. 消息。在工程中添加QT  +=network
  11. 服务端程序:


  12. #ifndef MYWIDGET_H
    #define MYWIDGET_H


    #include <QWidget>
    #include <QTcpServer>
    #include <QTcpSocket>


    namespace Ui {
    class mywidget;
    }


    class mywidget : public QWidget
    {
        Q_OBJECT
        
    public:
        explicit mywidget(QWidget *parent = 0);
        ~mywidget();
        
    private:
        Ui::mywidget *ui;
        QTcpServer *server;
        QTcpSocket *clientConnection;
        char recbuf[1024];
    private slots:
        void acceptConnection();
        void readClient();
    };


    #endif // MYWIDGET_H
  13. #include "mywidget.h"
    #include "ui_mywidget.h"


    mywidget::mywidget(QWidget *parent) :
        QWidget(parent),
        ui(new Ui::mywidget)
    {
        ui->setupUi(this);
        server=new QTcpServer();
        clientConnection=new QTcpSocket();
        server->listen(QHostAddress::Any,5000);
        connect(server,SIGNAL(newConnection()),this,SLOT(acceptConnection()));




    }


    mywidget::~mywidget()
    {
        delete ui;
    }


    void mywidget::acceptConnection()
    {
        clientConnection=server->nextPendingConnection();
        ui->label->setText("connect....");
        connect(clientConnection,SIGNAL(readyRead()),this,SLOT(readClient()));
    }


    void mywidget::readClient()
    {
        memset(recbuf,0,sizeof(recbuf));
        clientConnection->read(recbuf,1024);
        ui->recLine->clear();
        ui->recLine->setText(recbuf);


    }
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Qt 简单的 tcp socket 通信流程

刚接触 Qt 网络编程这一块,以下是一个简单的 tcp 通信流程,里面还有很多东西没有弄懂,难免有错误存在,在这里先做记录,以后弄懂了再做改正。 服务器端代码: chat_server.h #i...
  • kusey
  • kusey
  • 2011年09月22日 14:12
  • 18852

linux下基于TCP简单的socket通信程序

服务器端程序:  #include       #include       #include       #include       #include       #include ...
  • cghver
  • cghver
  • 2011年10月26日 14:50
  • 2470

QT_Socket_TCP简单程序

Qt的Socket类库学习
  • e891377
  • e891377
  • 2016年03月12日 23:54
  • 522

java Socket(一个简单的TCP通信程序)

昨天看了一下,TCP网络设计,虽然老师讲过,当时好像没怎么弄,不会,现在感觉那个蛮有意思的,从零开始,一步一步的学习它! (1)TCP服务器程序如下: package MySocket; imp...

基于QT的TCP_socket通信编

  • 2011年04月06日 11:48
  • 334KB
  • 下载

Qt开发——TCP协议下的socket通信

用qt写socket通信是在是太方便了。我偷懒把client和server写在一个qt控制台程序里了: pro文件: #----------------------------------------...

MFC TCP Socket通信简单的小例子

  • 2014年08月10日 19:53
  • 45.85MB
  • 下载

linux ipv6简单tcp/udp socket通信

  • 2013年11月04日 16:16
  • 3KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:qt tcp socket简单的通信程序
举报原因:
原因补充:

(最多只允许输入30个字)