Russian Qt Forum
Ноябрь 24, 2024, 01:57 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Qtcpsocket и простое приложение  (Прочитано 4527 раз)
ice2heart
Гость
« : Апрель 15, 2011, 09:27 »

Есть такая проблема, не могу понять в принципе как реализовать сетевое соединение запрос-> ответ.
Тоесть те примеры которые я нашел, начинали отдавать данные сразу при подключении.
Подскажите, или дайте пример пожалуйсто
Записан
RedDog
Гость
« Ответ #1 : Апрель 15, 2011, 09:54 »

Код, в примерах, который выполняется при подключении, повесь на кнопку и будет счастье.
Записан
ice2heart
Гость
« Ответ #2 : Апрель 15, 2011, 09:59 »

да не в этом дело, я непонял как считать и как записать что то в соккет.
Записан
SABROG
Гость
« Ответ #3 : Апрель 15, 2011, 10:02 »

Надо реализовывать свой протокол. Например разбить траффик на управляющие команды. Простейший вариант:

Код
C++ (Qt)
enum OpCode {
   E_GETFILE,
   E_SENDFILE
}
 

Формат пакета может быть таким:

Код:
struct SendFile {
    qint64 szPacket;
    OpCode opcode = E_SENDIFLE;
    qint64 szFile;
    quint32 fileCRC;
    const char data[szFile];
}

Если сервер получает что-то от клиента, то мы уже заранее знаем размеры "кусков", т.к. размер приходит первыми байтами и если приходит больше данных чем указано в "заголовке" пакета, то это начало нового. Если меньше, то значит надо дожидаться пока прийдет следующая порция данных. Главное, чтобы клиент и сервер знали точный и фиксированный размер поля szPacket.
Записан
ice2heart
Гость
« Ответ #4 : Апрель 15, 2011, 10:04 »

хм.  както сложно сильно.
можно пример с примерной реализаций? или что гуглить
Записан
ice2heart
Гость
« Ответ #5 : Апрель 15, 2011, 10:06 »

или может в qt уже есть готовый протокол?
Записан
ice2heart
Гость
« Ответ #6 : Апрель 15, 2011, 13:14 »

http://thesmithfam.org/blog/2009/07/09/example-qt-chat-program/comment-page-1 вот что нашел, может кому тоже поможет, очень хорошо документированно
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.07 секунд. Запросов: 20.