• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Qt - połączenie przez proxy

0 głosów
59 wizyt
pytanie zadane 3 maja 2018 w C i C++ przez pewien_programista Obywatel (1,050 p.)

Witam,

Stworzyłem prostą aplikację mającą na celu połączenie się z serwerem i wysłanie wiadomości (nauka) i natrafiłem na pewien problem: otóż nie do końca chcę się łączyć przez ip, więc spróbowałem użyć klasy QNetworkProxy. Po stronie serwera wszystko działa, ale klient nie chce się połączyć z serwerem.

Serwer

#include "server.h"

Server::Server(QObject *parent)
    :QObject(parent)
{
    server = new QTcpServer(this);

    proxy.setType(QNetworkProxy::DefaultProxy);
    proxy.setHostName("test");
    proxy.setPort(123);
    QNetworkProxy::setApplicationProxy(proxy);

    server->setProxy(proxy);

    connect(server, SIGNAL(newConnection()), this, SLOT(connected()));

    if (!server->listen(QHostAddress::Any, 123))
    {
        qDebug() << "server could not start";
    }
    else
    {
        qDebug() << "server started";
        qDebug() << proxy.hostName();
    }
}

void Server::connected()
{
    QTcpSocket* socket = server->nextPendingConnection();

    qDebug() << socket->peerAddress().toString();

    socket->write("dziala");
    socket->flush();

    socket->waitForBytesWritten(3000);

    socket->close();
}

Klient

#include "client.h"
#include <QDebug>
#include <QHostAddress>

Client::Client()
{
    socket = new QTcpSocket(this);

    connect(socket,SIGNAL(connected()), this, SLOT(connected()));
    connect(socket,SIGNAL(disconnected()), this, SLOT(disconnected()));
    connect(socket, SIGNAL(stateChanged(QAbstractSocket::SocketState)), this, SLOT(change(QAbstractSocket::SocketState)));

    socket->connectToHost("test", 123);
}

void Client::connected()
{
    qDebug() << "connected\n";
}

void Client::disconnected()
{
    qDebug() << socket->readAll();
    qDebug() << "disconnected\n";
}

void Client::change(QAbstractSocket::SocketState state)
{
    return;
}

Liczę na pomoc i szybką odpowiedź, z góry dziękuję :)

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 104 wizyt
pytanie zadane 5 listopada 2017 w Python, Django przez prominepl Bywalec (2,430 p.)
0 głosów
1 odpowiedź 55 wizyt
0 głosów
0 odpowiedzi 23 wizyt
pytanie zadane 8 czerwca w Sieci komputerowe, internet przez Michał_pl Początkujący (300 p.)
Porady nie od parady
Zadając pytanie postaraj się o odpowiedni tytuł, kategorię oraz tagi.Tagi

64,981 zapytań

111,458 odpowiedzi

234,638 komentarzy

46,802 pasjonatów

Przeglądających: 210
Pasjonatów: 5 Gości: 205

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...