понедельник, 28 февраля 2011 г.

Первое сообщение серверу нашими руками.

В прошлый раз мы остановились на самом интересном месте. Вот только все началось получаться. Разобрались с программой для отлова сетевых сообщений и даже поймали несколько. Вот только непонятно, а что дальше? А дальше нужно определиться, как принимать и отсылать сообщения по сети. Но прежде чем это сделать необходимо узнать, а как вообще строится общение сетевых приложений. По стандарту или в терминах Интернет сообщества по спецификации существует два вида коммуникационных пакетов передаваемых по сети. Один с гарантированной доставкой и называется TCP/IP, а второй это UDP/IP. Хотя на самом деле здесь видно три протокола обмена информацией IP, TCP, UDP. IP протокол предназначен для организации взаимодействия компьютеров с помощью специальных Интернет адресов. TCP и UDP, в свою очередь, предлагают методы для общения между компьютерами, первый с гарантированной доставкой (правильнее будет сказать, с возможностью контроля доставки), а второй для доставки пакетов без какой-либо гарантии, что эти пакеты будут доставлены. Почему это важно знать, хотя бы в общих чертах? Ну потому, что для написания программы с поддержкой UDP будет нужно использовать совсем другие функции, чем для ПО с поддержкой TCP.
Но какой же протокол нужен нам?

Ответом на вопрос станет вышеприведенное изображение. Под столбцом с названием «protocol» ясно видно, что написано UDP. При этом если посмотреть весь процесс общения клиента с сервером, то есть прокрутить и посмотреть все пакеты, то видно, что используется везде протокол UDP. Теперь-то с уверенностью можно приступать к созданию нашего клиента для общения с сервером.

Исходный код main.cpp

Копируем код программы, которая должна представлять собой каркас нашего будущего клиента, и позволяет принимать и отправлять сообщения.
Этот код нужно скопировать и вставить вместо вашего кода в файле main.cpp. Осталась маленькая деталь. Для того, чтобы код заработал нужно в файл проекта (*.pro) нужно добавить строку:
LIBS += "путь к файлу "
А что это за путь до файла и самое главное до какого файла? Все просто вам нужен заголовочный файл для работы с Winsock библиотекой. Где найти этот файл и как он называется?
Файл называется «libws2_32.a» и найти его можно в папке где установлено QT, в папке mingw, а проще всего сделать это с помощьб стандартного поиска файлов. Затем скопировать путь до файла.
В результате должно выйти что-то типа:
LIBS += "C:\Qt\2010.05\mingw\lib\libws2_32.a"

Ну а теперь пробуем запустить. Если все правильно сделали, то появится консольное окно, которое зависнет. Это пока нормально. Закрываем его.
Ну и как теперь посмотреть, получилось или нет? Точно также, как мы смотрели общение между сервером и клиентом, то есть в окне Network Protocol Analyzer.


Великолепно. Мы отправили наше первое сообщение серверу.

13 комментариев:

  1. Сервер на винде ? "перекрестился"

    ОтветитьУдалить
  2. А что вбить в свойствах TCP/IP?

    ОтветитьУдалить
  3. Сделай сам: сообщение серверу)

    ОтветитьУдалить
  4. А нам в универе сетевые технологии преподавали вяло. Мало чего помню оттуда.

    ОтветитьУдалить
  5. твой блог - один из самых полезных, что я видел.

    ОтветитьУдалить
  6. Спасибо за инструкцию, понадобится.

    ОтветитьУдалить
  7. ок. взял на заметку. пригодиться

    ОтветитьУдалить