20988

Взаимодействие прикладных программ с помощью транспортных протоколов сети Интернет

Лабораторная работа

Информатика, кибернетика и программирование

Необходимо создать приложение (клиент) , который мог бы отправлять сообщения серверу при помощи транспортных протоколов (TCP и UDP). Клиент должен содержать файлы настроек для возможности задания порта и IP адреса сервера.

Русский

2013-08-15

862.5 KB

6 чел.

Жиляев А.Ю.

Исламгулов И.А.

ПО-430

Отчет к лабораторной работе №1

Взаимодействие прикладных программ с помощью транспортных протоколов сети Интернет

Цель работы:

Цель данной работы является изучение принципов работы транспортных протоколов Интернет, разработка прикладных программ, осуществляющих взаимодействие между собой на основе этих протоколов.

 

  1.  Постановка задачи

Необходимо создать приложение (клиент) , который мог бы отправлять сообщения серверу при помощи транспортных протоколов (TCP и UDP). Клиент должен содержать файлы настроек для возможности задания порта и IP адреса сервера.

  1.  Решение задачи

Для решения задачи разработаем алгоритм работы приложений:

Алгоритм работы:

  1.  Запуск клиента, сервера. Инициализация приложений
  2.  Выбор типа протокола для соединения
  3.  Отправка сообщения серверу
  4.  Обработка сообщения сервером, отправка ответного сообщения клиенту
  5.  Закрытие соединения

  1.  Реализация

Программа реализована в ЯП Python с использованием gevent. gevent это лёгкая и быстрая сетевая библиотека, использующая userspace-потоки (greenlets) для организации синхронного API поверх цикла обработки событий libevent.

  1.  Руководство программиста

TCP SERVER

   server = StreamServer(TCP_SERVER_ADDRESS, connection_handler) — создание tcp сервера, connection-handler функция вызываемая при подключение нового клиента!!!!!

def connection_handler(socket, address): - socket на который пришло соединение, address — адресс пользователя от которого поступило подключение.

UDP SERVER

создается юдп сокет

   udp_sock = gevent.socket.socket(gevent.socket.AF_INET, gevent.socket.SOCK_DGRAM)

   udp_sock.setsockopt(gevent.socket.SOL_SOCKET, gevent.socket.SO_BROADCAST, 1)

   udp_sock.bind(UDP_SERVER_ADDRESS)

   handler = UdpHandler() - создается объект принимающий сообщения.

       server = DgramServer(udp_sock, handler) — создается сервер который связывает сокет и объект принимающий сообщения.

  1.  Руководство пользователя

Работа клиента

Для работы приложения необходимо запустить две программы: Client и Server.

После этого вы можете начинать писать своё сообщение. После отправки вы можете видеть ответ от сервера:

Работа сервера

Задача сервера принимать сообщения от клиентов и отдавать ответ:

Конфигурационный файл

UDP_SERVER_PORT – порт UDP сервера 

UDP_SERVER_HOST –  хост UDP сервера

TCP_SERVER_PORT – порт TCP сервера

TCP_SERVER_HOST – хост TCP сервера


 

А также другие работы, которые могут Вас заинтересовать

83006. Організація туру по Чернігівській області 978.5 KB
  Якому пропонують на вибір різні варіанти обслуговування по кожному із видів послуг в запропонованому їм самим місця відпочинку: розміщення різні за рівнем типом та місцем розташування готелю; харчування різні варіанти повний або напівпансіон або зовсім без харчування шведський стіл...
83007. Лезникиківське родовище Житомирьска область 470.22 KB
  Завдяки своїй твердості граніт завжди користувався популярністю в будівництві і продовжує широко застосовуватися і в наші дні. Так гранітний камінь часто Однак крім своєї надзвичайної твердості граніт дуже гарний. Гранітний камінь має безліч різноманітних кольорів і відтінків.
83008. Изучение программно-аппаратных средства системы дистанционного обучения 647 KB
  Автоматизированные системы дистанционного обучения описание требования типовая система архитектура и классификация.Формы дистанционного обучения посредством Интернета. Новые условия общественного развития требуют подготовки новых специалистов использования новых современных технологий обучения адекватных...
83011. Тестування і ремонт струменевих багатофункціональних пристроїв. Методи вимірювання опору, ємності, індуктивності, добротності 172.15 KB
  В даній курсовій роботі ми розглянемо основні види струменевих пристроїв,їхні характеристики, основні несправності, та методи їх усунення. Також розглянемо тему: Методи вимірювання опору,за допомогою мостів Вінтстона, метод вимірювання ємності, за допомогою фарадметру, а також і методи вимірювання індуктивності і добротності.
83012. Програмне забезпечення операційної системи Android 2.22 MB
  Android має досить простий і інтуїтивно зрозумілий інтерфейс. Всі потрібні програми розміщуються одночасно на головному екрані і в меню апарату, яке викликається натисканням на центральну сенсорну клавішу або відповідну кнопку на екрані. Всі налаштування розташовуються в секції «Налаштування», а кожна дія користувача пояснюється коментарями і підказками при першому запуску смартфону.
83013. Створення база даних в СУБД InterBase 208.5 KB
  Також у InterBase реалізований механізм блокування на рівні запису. Це значить, що сервер блокує тільки ті записи, що реально були змінені користувачем, і не блокує всю сторінку даних цілком. Ця особливість знижує імовірність конфліктів при багатокористувацькому режимі роботи.