Это довольно элементарный вопрос. Я только начинаю программирование сокетов, и я использую qt/C++. Я написал тривиальную программу как упражнение, которое подключается к сокету (loopback localhost на порту 80), записывает на него некоторые данные, ждет ответа и затем выводит ответ в моем терминале.Запись в гнездо tcp
Вот основной метод программы:
void TcpSocket::ConnectSocket()
{
socket = new QTcpSocket(this);
socket->connectToHost("localhost", 80);
if(socket->waitForConnected(3000)){
qDebug() << "Connected";
socket->write("Hello Server");
socket->waitForBytesWritten(1000);
socket->waitForReadyRead(3000);
qDebug() << "Reading: " << socket->bytesAvailable();
qDebug() << socket->readAll();
socket->close();
}
else {
qDebug() << "Could not connect";
}
}
Отклик выше кода заключается в следующем:
Connected
Reading: 0
""
Сейчас, прямо сейчас я на самом деле есть виртуальный хост набор для локального хоста в порт 80, который служит веб-странице на моей локальной машине. Когда я выполняю эту программу, абсолютно ничего не происходит на конечной точке localhost: 80.
Если порт 80 прослушивает, где он пишет «Привет, сервер»? И почему он не отвечает?
Другая проблема, я имею создать сервер на одном из моих портов в убунту сам: Суда н.д. -l 77. Есть ли способ сделать сказать, операционную систему, чтобы создать соединение сети на указанный порт в моей программе qt? – JohnMerlino
Конечно, все возможно. В общем, это плохая безопасность для запуска приложений как root. Просто используйте номера портов (выше 1024). – BraveNewCurrency