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);


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

QT5实现简单的TCP通信

这段时间用到了QT的TCP通信,做了初步的学习与尝试,编写了一个客户端和服务器基于窗口通信的小例程。 使用QT的网络套接字需要.pro文件中加入一句: QT += network 一、客...
  • u014695839
  • u014695839
  • 2017年04月11日 00:43
  • 7533

java通过tcp协议与qt通信

最近碰到一个项目,用qt写了一个服务器,java写客户端,然后客户端发送信息,请求服务器的数据。网上很多资料都是qt与qt通信,java与java通信,既然都是利用tcp协议,理论上也是可以进行jav...
  • u012160436
  • u012160436
  • 2015年04月15日 12:10
  • 1726

Qt之进程间通信(TCP/IP)

简述可以通过Qt提供的IPC使用TCP/IP,使用QtNetwork模块即可实现,TCP/IP在实现应用程序和进程内部通信或与远程进程间的通信方面非常有用。QtNetwork模块提供的类能够创建基于T...
  • u011012932
  • u011012932
  • 2016年02月04日 10:19
  • 9246

socket编程之实现一个简单的TCP通信

一、理解socket1、socket即为套接字,在TCP/IP协议中,“IP地址+TCP或UDP端口号”唯一的标识网络通讯中的一个进程,“IP地址+TCP或UDP端口号”就为socket。 2、在T...
  • qq_33951180
  • qq_33951180
  • 2017年03月29日 18:33
  • 1582

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

用qt写socket通信是在是太方便了。我偷懒把client和server写在一个qt控制台程序里了: pro文件: #----------------------------------------...
  • jupeizhong
  • jupeizhong
  • 2015年10月02日 21:22
  • 1522

QT TCP socket通信(一)

TCP即Transmission Control Protocol,传输控制协议。与UDP不同,它是面向连接和数据流的可靠传输协议。也就是说,它能使一台计算机上的数据无差错的发往网络上的其他计算机,所...
  • king16304
  • king16304
  • 2016年08月10日 20:38
  • 2583

VC6.0控制台程序下实现最简单的TCP网络通信

//本工程还需链接一个库文件 //解决方案一:程序代码中加入#pragma comment(lib, "Ws2_32.lib") //解决方案二:在project\setting\link 中obje...
  • nicholas199109
  • nicholas199109
  • 2013年01月05日 15:44
  • 4146

QT之不同主机之间TCP通信

一、客户端实现 1.tcpclient.h #ifndef TCPCLIENT_H #define TCPCLIENT_H #include #include #include namesp...
  • tianya_team
  • tianya_team
  • 2016年11月23日 10:08
  • 529

Qt Socket(简单的通讯)

今天开始做
  • u013704336
  • u013704336
  • 2014年05月12日 20:18
  • 1328

socket实现的一个基本点对点聊天程序

p2pcli.c #include #include #include #include #include #include #include #include #include ...
  • fuyuehua22
  • fuyuehua22
  • 2014年05月10日 19:31
  • 5219
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:qt tcp socket简单的通信程序
举报原因:
原因补充:

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