Qt – Conexão TCP client

qtcreator Apenas para complementar o post, caso pretenda fazer uma conexão client em Qt para conectar ao server descrito no post anterior, é muito mais simples, bastando criar uma instância do QTcpSocket, um QHostAddress e então conectar, aguardar a conexão ser estabelecida, escrever e ler. Mais uma vez enfatizo que a simplicidade do conteúdo é pela questão de rápida consulta por mim mesmo, quando houver necessidade, mas espero que alguém mais possa desfrutar (ou até discorrer a respeito) desse conteúdo. Nem tem mais o que acrescentar de tão simples:




mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    teste();
}
void MainWindow::readIsDone()
{
    qDebug() << "ok";
}
void MainWindow::handle(qint64 bytes)
{
    qDebug() << bytes;
}
void MainWindow::teste()
{
    QTcpSocket sockets;
    connect(&sockets,SIGNAL(bytesWritten(qint64)),this,SLOT(handle(qint64)));
    connect(&sockets,SIGNAL(disconnected()),this,SLOT(close()));
    connect(&sockets,SIGNAL(readyRead()),this,SLOT(readIsDone()));
    sockets.connectToHost("127.0.0.1", 9000);
    for (int i=0;i<4;i++){
        QString val = QString::number(i);
        if(sockets.waitForConnected()){
            sockets.write(val.toUtf8()+"n",val.length());
            sockets.waitForReadyRead();
            qDebug() << sockets.readLine();
            sockets.flush();
            qDebug() << "texto" << val;
        }
    }
    //sockets.disconnectFromHost();
    //sockets.close();
}
MainWindow::~MainWindow()
{
    delete ui;
}

 

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QTcpSocket>
#include <QDebug>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
    Q_OBJECT
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
private:
    Ui::MainWindow *ui;
private slots:
    void handle(qint64 bytes);
    void readIsDone();
    void teste();
};
#endif // MAINWINDOW_H

Se gostou, não deixe de compartilhar; dê seu like no video e inscreva-se no nosso canal Do bit Ao Byte Brasil no YouTube.

Prefere seguir-nos pelo facebook? Basta curtir aqui.

Prefere twitter? @DobitAoByte.

Próximo post a caminho!

Djames Suhanko

Djames Suhanko é Perito Forense Digital. Já atuou com deployer em sistemas de missão critica em diversos países pelo mundão. Programador Shell, Python, C, C++ e Qt, tendo contato com embarcados ( ora profissionalmente, ora por lazer ) desde 2009.

Deixe uma resposta