Не подключается к TCP серверу - Qt

393
23 июня 2017, 09:12

Здравствуйте,подскажите пожалуйста,пытаюсь создать "Чат-клиент". Дошел до того, что я создаю сервер и захожу в сам клиент с первого компьютера.

Но моя проблема заключается в том, что , когда я подключаюсь вторым компьютером к созданному серверу (который запущен на первом компьютере) ,то подключение не происходит.

Получается такая ситуация:

(сервер запущен)

На первом компьютере:

На втором: Но подключаясь(запуская только клиент), Connect не происходит. Номер порта и localhost остается прежним при подключение. Чтобы добавить Connection в "сервер":

void Widget::addConnection()
{
    QTcpSocket* connection = server->nextPendingConnection();
    connections.append(connection); //Them ket noi vao danh sach
    QBuffer *buffer = new QBuffer(this); //Tao bo dem du lieu cho connection nay
    buffer->open(QIODevice::ReadWrite);
    buffers.insert(connection, buffer); //Luu vao danh sach
    connect(connection, SIGNAL(disconnected()), this, SLOT(removeConnection()));
    connect(connection, SIGNAL(readyRead()), this, SLOT(receiveMessage()));
}

Я не знаю, как лучше показать код, чтобы это легче воспринималось для понимания и, чтобы вы помогли решить проблему. Я выложу его так:

Сервер:

https://www.dropbox.com/sh/vilapm4sr1laimi/AAD5G0USlLf5UayQq2zHb9ZUa?dl=0

Клиент:

https://www.dropbox.com/sh/fx9jtzvtmeepzry/AABcDbvFU4ha4skHQP9AxK1la?dl=0

Собираю на Qt 5.3 под Windows.

Answer 1

Ваша проблема в том, что [localhost][1] (он же 127.0.0.1) - это такой специальный адрес самой машины, на которой вы работаете. Так что запрос localhost на клиенте означает попытку подключения к серверу на этой же машине.

Так что в клиенте вам нужно указывать реальный адрес вашего сервера, ну, а сам сервер, соответственно, связывать для прослушивания с реальным адресом (bind() при работе с сокетами; как это решается в Qt - смотрите сами).

READ ALSO
Плагин для vim на С(++)

Плагин для vim на С(++)

Нужен пример colorer-плагина для vim написанного на С(++)

189
Нет соединения с TCP сервером - Qt

Нет соединения с TCP сервером - Qt

Здравствуйте, подскажите пожалуйста, у меня имеется два приложение, одно - сервер, другое - клиент

418
Добавить ID переключателя в href по клику

Добавить ID переключателя в href по клику

Добавляю в href ИД переключателя по клику, но при каждом нажатии на переключатель, ИД добавляется снова и снова, а нужно только один, попробовал...

276