Witam, mam problem z połączaniem się z programem po zewnętrznym IP. Otworzyłem port 7222 w routerze, próbował również kolega, który podłączony jest bezpośrednio do modemu.
Kod serwera:

#include "manage_server.h"
#include "ui_manage_server.h"

Manage_server::Manage_server(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::Manage_server)
{
    ui->setupUi(this);
    server = new QTcpServer();
    connect(server, SIGNAL(newConnection()), this, SLOT(newConnection()));
    server->listen(QHostAddress::Any, 7222);
    qDebug()<<"Started!";
}

void Manage_server::newConnection()
{
    qDebug()<<"Connected!";
    socket = server->nextPendingConnection();
    connect(socket, SIGNAL(readyRead()), this, SLOT(readyRead()));
    connect(socket, SIGNAL(disconnected()), this, SLOT(disconnected()));

    socket->write("hello client");
    socket->flush();


}

void Manage_server::disconnected()
{
    qDebug()<<"Disconnected!";
    socket->close();
}

void Manage_server::readyRead()
{
    qDebug()<<"Ready!";
    QString response = socket->readAll();
    qDebug()<<response;
    if (response == "TurnOff") TurnOff();
    else if (response == "CloseServer")CloseServer();
    else if (response == "LockUser")LockUser();
    else if (response.at(0)=="O")
    {
        QString response2;
        for(int i=0; i<=6; i++)
        {
            response2 = response2 + response.at(i);
        }
        response.remove(0, 8);
        if(response2=="OpenURL")OpenURL();
        link = response;
        qDebug()<<link;
    }
    else return;
}

Client:

 #include "manage_app.h"
#include "ui_manage_app.h"

Manage_App::Manage_App(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::Manage_App)
{
    ui->setupUi(this);
    this->setWindowTitle("Manage_App");

    ui->lineEdit->setText("192.168.88.228");
    ui->pushButton_2->hide();
    ui->pushButton_3->hide();
    ui->pushButton_4->hide();
    ui->pushButton_5->hide();

    ui->lineEdit_2->hide();
    ui->label_2->hide();

    socket = new QTcpSocket();
    ConnectButtons();
}

void Manage_App::ConnectButtons()
{
    connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(Connect()));
    connect(socket, SIGNAL(readyRead()), this, SLOT(readyRead()));
    connect(socket, SIGNAL(connected()), this, SLOT(Connected()));
    connect(ui->pushButton_2, SIGNAL(clicked()), this, SLOT(Send_TurnOff()));
    connect(ui->pushButton_3, SIGNAL(clicked()), this, SLOT(Send_CloseServer()));
    connect(ui->pushButton_4, SIGNAL(clicked()), this, SLOT(Send_OpenURL()));
    connect(ui->pushButton_5, SIGNAL(clicked()), this, SLOT(Send_LockUser()));

}

void Manage_App::Connect()
{
    QString IPAdress = ui->lineEdit->text();
    qDebug()<<IPAdress;
    socket->connectToHost(IPAdress, 7222);
    socket->flush();
}

void Manage_App::readyRead()
{
    qDebug()<<"Ready to read";
    qDebug()<<socket->readAll();
    ui->pushButton->hide();
    ui->lineEdit->hide();
    ui->label->hide();
    ui->pushButton_2->show();
    ui->pushButton_3->show();
    ui->pushButton_4->show();
    ui->pushButton_5->show();

    ui->lineEdit_2->show();
    ui->label_2->show();
}

void Manage_App::Connected()
{
    qDebug()<<"Connected!";
}

void Manage_App::Send_TurnOff()
{
    socket->write("TurnOff");
    socket->flush();
}

void Manage_App::Send_CloseServer()
{
    socket->write("CloseServer");
    socket->flush();
}

void Manage_App::Send_OpenURL()
{
    QString link = ui->lineEdit_2->text();
    QByteArray mydata = link.toUtf8();
    socket->write("OpenURL:"+mydata);
    socket->flush();
}

void Manage_App::Send_LockUser()
{
    socket->write("LockUser");
    socket->flush();
}

Manage_App::~Manage_App()
{
    socket->close();
    delete socket;
    delete ui;
}