@AlexSer

Как сделать QT connect на другой класс?

Пишу Tcp сервер. Вывел Tcp Server на другой файл. Как правильно сделать connect для соединений и для чтений?

tcpserver.h
#ifndef TCPSERVER_H
#define TCPSERVER_H
#include <QTcpServer>
#include <QTcpSocket>
#include <QTextBrowser>

class TcpServer
{
public:
    TcpServer();

    QTextBrowser *terminal;

public slots:
    void Start();
    void NewConnection();
    void ReadData();
    void Stop();
private:
    QTcpServer *server;
    QTcpSocket *socket;
};
#endif // TCPSERVER_H

tcpserver.cpp
#include <QTcpServer>
#include <QFile>
TcpServer::TcpServer()
{

    // connect(&server, SIGNAL(newConnection()), this, SLOT(newConnection()));
}

void TcpServer::Start()
{
    server=new QTcpServer();
    if(!server->listen(QHostAddress::Any, 12001))
     {
       qDebug() << "server is not started";

     } else {
           qDebug() << "server is started";
           terminal->append("TCP\\IP успешно запущен!");
     }
  }

void TcpServer::NewConnection()
{
    socket = server->nextPendingConnection();
    socket->write("Hello, World!!! I am echo server!\r\n");
    
}

void TcpServer::ReadData()
{
    
    QByteArray static data;
    while(socket->bytesAvailable()>0)
        {
            QByteArray array = socket->readAll();
            socket->write(array);
            data+=array;
            qDebug()<<array;
              terminal->append(array);
    }
    QFile file("LogTcp.txt");
    if(file.open(QIODevice::Append))
        { //Если первый файл открыт для чтения, а второй для записи успешн

            file.write("\r\n" +data + "\r\n"); // Записываем 10 байт в файл fileout.txt
            file.close(); // Закрываем fileout.txt
        }
}
void TcpServer::Stop()
{
  server->close();
}

Запуск сервера в mainwindow:

void MainWindow::on_actionStartServerTcp_triggered()
{
    TcpServer *server=new TcpServer();
    server->terminal=ui->terminal;
    server->Start();
  
}

Как правильно сделать connect для newconnection и ReadData()?
Плохо разбираюсь в сигналах и слотах.
  • Вопрос задан
  • 91 просмотр
Решения вопроса 2
Zifix
@Zifix Куратор тега Qt
Barbatum
Плохо разбираюсь в сигналах и слотах.

Прочитайте любую книгу о Qt и разберитесь, сэкономите кучу времени.
Ответ написан
Комментировать
@cycloclimber
Можете посмотреть тут и тут

А тут прекрасные уроки от evileg.com
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
yarosroman
@yarosroman
C# the best
А причем тут C#?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы