Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
4 / 4 / 4
Регистрация: 15.11.2017
Сообщений: 86
1

Чтение из сервера

10.01.2018, 14:34. Показов 1460. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как прочитать только одну надпись через сокеты , а не все то что отправляет сервер?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.01.2018, 14:34
Ответы с готовыми решениями:

Реализовать чтение с сервера
чем можно воспользоваться чтобы программа могла считывать определенный текст с сервера, ничего не...

Чтение из OPC-сервера
Добрый день, друзья! Есть приложение, которое обменивается данными с другим ПО через теги...

Чтение файлов с сервера
Здравствуйте! Пишу курсовую на тему: "Тестирование знаний" - клиент-сервер. На...

Чтение ответа от сервера
В общем регулярные выражения тут врятли помогут так как мы имеем дело не с JSON, а с xml. Нужно...

4
392 / 262 / 193
Регистрация: 02.05.2017
Сообщений: 1,003
10.01.2018, 14:40 2
а проверить там же где считываешь разрешается? Потом можно просто удалить сокет или закрыть его. А так - напиши конкретнее - лучше задачей
0
4 / 4 / 4
Регистрация: 15.11.2017
Сообщений: 86
10.01.2018, 16:08  [ТС] 3
LegionK, можете это показать в кодовом виде?
0
392 / 262 / 193
Регистрация: 02.05.2017
Сообщений: 1,003
10.01.2018, 16:41 4
hono, удаление сокета или вся работа с ним? Мне то не сложно - времечко ещё есть - только тип напиши : tcp, udp или web

Добавлено через 29 минут
Я реально фиг знает в чем вопрос, но просто скину readyRead слот,раз в теме так написано.
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
void sending_tcp_udp_web::tcp_ready_read(){
    QByteArray array_for_tcp_bytes;
    while(tcp_socket->bytesAvailable() > 0){ 
        array_for_tcp_bytes.append(tcp_socket->readAll());  // это норм прием с tcp и udp 
    }                                                             // проверка на кол-во оставшихся "в очереди" байтов 
    if(!tcp_socket->error()){                        // проверка на ошибку
    //    if(array_for_tcp_bytes == QByteArray("твоя команда")){
    //        // делать че тебе нужно
    //    }else{
    //        return; // если вообще не хочешь какое-то время получать :
    //        tcp_socket->close(); // потом открываешь где-нибудь
    //    }
    //    
    emit array_with_bytes(array_for_tcp_bytes);                     // отправляем данные
    emit finished();                                                 // говорим потоку, в котором наход. объект останавливаться
    pause_socket();                                                   // тут очистка данных
    array_for_tcp_bytes.~QByteArray();                                   // необязательно, и кто-то сказал мне что нежелательно, но...
    } else {         
       qDebug() << tcp_socket->errorString();                                        //выводим в дебаг строку ошибки
       array_for_tcp_bytes.~QByteArray();               
       emit finished();
       pause_socket();
       array_for_tcp_bytes.~QByteArray();
       return;
    }
}
Смари, в начале ты создаешь сокет, это логично, вот tcp_socket
C++ (Qt)
1
QTcpSocket * tcp_socket = new QTcpSocket;
Дальше указываешь куда надо коннектиться и режим
C++ (Qt)
1
2
tcp_socket->connectToHost(host,port);
            tcp_socket->open(QIODevice::ReadWrite);
Дальше делаешь коннекты от него :
C++ (Qt)
1
2
3
connect(tcp_socket,SIGNAL(readyRead()),this,SLOT(tcp_ready_read()));    // readyRead - когда приходят данные
            connect(tcp_socket,SIGNAL(connected()),this,SLOT(socket_connected())); // тут в логгер событие , ничего интересного
            connect(tcp_socket,SIGNAL(disconnected()),this,SLOT(pause_socket()));  // Тута удаляем/останавливаем сокеты, че тебе нужно
Udp:
C++ (Qt)
1
2
3
4
5
udp_socket = new QUdpSocket(this);                                    
udp_socket->bind(QHostAddress(host),port);                            
connect(udp_socket,SIGNAL(readyRead()),this,SLOT(udp_ready_read()));  
connect(udp_socket,SIGNAL(hostFound()),this,SLOT(socket_connected()));
connect(udp_socket,SIGNAL(disconnected()),this,SLOT(pause_socket()));
Вот примеры записи в них :
C++ (Qt)
1
2
3
4
5
tcp_socket->write(array_for_date_time);
        tcp_socket->write(socket.toUtf8());
        tcp_socket->write(type.toUtf8());             //все данные - QByteArray, иначе не примет 
        tcp_socket->write(size.toUtf8());
        tcp_socket->write(text);
C++ (Qt)
1
2
3
4
5
6
7
 QByteArray datagram_for_udp_socket;
        datagram_for_udp_socket.append(array_for_date_time);
        datagram_for_udp_socket.append(socket);
        datagram_for_udp_socket.append(type);
        datagram_for_udp_socket.append(size);
        datagram_for_udp_socket.append(text);
        udp_socket->writeDatagram(datagram_for_udp_socket,QHostAddress(host),port);
Если коротко охарактеризовать - то tcp - он устанавливает связь между точками, при отправке и принятии данных - проверяет их доставленность и вообще он типа надеждный такой,во, но на это тоже уходит какое-то время,так что тут надежность > скорость отправки. У udp - наоборот - он посылает datagram'ы не заботясь о их доставленности, то есть соеденения и проверки не делает. Вот так если коротко описать их. Фиг знает за чем - ну да ладно пусть будет. А то мне показалось, что ты ентого не знал
0
4 / 4 / 4
Регистрация: 15.11.2017
Сообщений: 86
10.01.2018, 22:33  [ТС] 5
LegionK, ну TCP, UDP знал.Спасибо за помощь
0
10.01.2018, 22:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.01.2018, 22:33
Помогаю со студенческими работами здесь

Чтение данных с TCP сервера
Всем привет. Возникла сложность с обработкой информации от TCP сервера. Схема работы сервера, как...

Чтение файла с http-сервера
Как это реализовать, чтоб код работал. А то выдается ошибка путь не найден (смотри код).Вроде надо...

Чтение файла с удаленного сервера
День добрый, уважаемые форумчане! Возник вопрос по чтению двоичных файлов. Ситуация такова, что...

Чтение данных с ftp сервера
Доброго всем дня. Помогите пожалуйста подскажите как прочитать данные с сервера, есть адрес...

Чтение XML c FTP сервера
Доброго дня. Задача следующая: чтение XML файла с FTP сервера (вывод данных в таблицу). ...

Чтение писем с сервера по протоколу IMAP
Всем привет, нужно подключаться к почтовому серверу по протоколу IMAP4, выбирать нужные письма и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru