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