QTcpSocket не могу добиться отправки строки
Доброе время суток, начал пробывать работать с QTcpSocket и не как не могу добится отправки на сервер и с сервера строк. Посмотри те где я косяк
- // Так стортует сервер
- void UICore::on_StartServ_clicked()
- {
- tcpServer = new QTcpServer(this);
- connect(tcpServer, SIGNAL(newConnection()), this, SLOT(newuser()));
- if (!tcpServer->listen(QHostAddress::Any, ui->lE_Port->text().toInt()) && server_status==0) {
- qDebug() << QObject::tr("Unable to start the server: %1.").arg(tcpServer->errorString());
- ui->textBrowser->append(tcpServer->errorString());
- } else {
- server_status=1;
- qDebug() << tcpServer->isListening() << "TCPSocket listen on port";
- ui->textBrowser->append(QString::fromUtf8("Сервер запущен!"));
- ui->textBrowser->append(QString::fromUtf8("Порт " + ui->lE_Port->text().toUtf8()));
- qDebug() << QString::fromUtf8("Сервер запущен!");
- }
- ui->tabWidget->setCurrentIndex(0);
- ui->StartServ->setEnabled(false);
- ui->Settings->setEnabled(false);
- }
- // так работает слот реадирид
- QTcpSocket* clientSocket = (QTcpSocket*)sender();
- int idusersocs=clientSocket->socketDescriptor();
- QTextStream os(clientSocket);
- os.setAutoDetectUnicode(true);
- QString tmp = "HTTP/1.0 200 Ok\r\nContent-Type: text/html; charset=\"utf-8\"\r\n\r\n<h1>Test web Server</h1>\n";
- ui->textBrowser->append("ReadClient:"+clientSocket->readAll()+"\n\r");
- sendToClientStr(clientSocket,tmp);
- qDebug () << "test";
- break;
Как бы если на этом этапе подключится с браузера то все ок. Но вот если попробывать вот так то беда
- // конектимся к серверу и передаем сообщение
- //
- void UICore::on_cB_connect_clicked()
- {
- _socket->connectToHost(ui->lE_server->text().toUtf8(), ui->lE_port->text().toShort());
- if(_socket->error()) {
- ui->tB_logs->append("Connectid by " + ui->lE_server->text().toUtf8() + " port " + ui->lE_port->text().toUtf8() );
- }else{
- QMessageBox *msg = new QMessageBox;
- msg->setText(_socket->errorString());
- msg->show();
- }
- QString tmp = "test";
- sendToServerStr(tmp.toUtf8());
- }
- bool UICore::sendToServerStr(QString str)
- {
- QByteArray block;
- QDataStream sendStream (&block,QIODevice::ReadWrite);
- sendStream.setVersion(QDataStream::Qt_5_9);
- sendStream << quint16(0) << str;
- sendStream.device()->seek(0);
- sendStream << (quint16)(block.size() - sizeof(quint16));
- _socket->write(block);
- _socket->flush();
- return true;
- }
2
252
Do you like it? Share on social networks!
- Last comments
- AKApril 1, 2025, 11:41 a.m.Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
- VPMarch 9, 2025, 4:14 p.m.Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
- ИМNov. 22, 2024, 9:51 p.m.Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
- Now discuss on the forum
- fFeb. 15, 2025, 1:46 p.m.Подскажите, пожалуйста! Как данный класс можно дополнить, чтобы созданные объекты можно было перемещать мышкой по сцене?
- Не запускается компьютер (точнее работает блок , но сам монитор вообще жесть)В общем я ничего с интернета не скачивала в последнее время. На компе никаких левых пр…
- Вопрос решен. Узнать QModelIndex элемента на который мы перетаскиваем другой элемент, можно с помощью функции indexAt(event->position().toPoint()) представления QTreeViev вызываемой в переопр…
- Спасибо большое за помощь и простите за то что отнял время своей невнимательностью.
а где слот newuser() и его обвязка?
Там все работает. Я уже поборол эту проблемму. Теперь пытаюсь сделать непрырывное вещяния и прием. Порциями все ровно а вот в реалтайме беда