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ę :)