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 сервера


 

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

18114. Рисование геометрических фигур 146.5 KB
  Рисование точки Функция рисования точки SetPixel устанавливает цвет точки с заданными координатами: COLORREF WINAPI SetPixel HDC hdc // контекст отображения int nXPos // xкоордината точки int nYPos // yкоордината точки COLORREF clrref; // цвет точки Параметр hdc
18115. Об’єктно-реляційні перетворення (O/RM – Object-relational mapping) 83 KB
  Об’єктнореляційні перетворення O/RM – Objectrelational mapping //Реляційні бази даних; проблеми зв’язку реляційних БД з ООПпрограмами} Об’єктноорієнтовані бази даних і СУБД ODBMS Object database management system Поряд з реляційними базами даних РБД в яких інформація зберігається у вигл...
18116. Поняття бізнес-логіки. Java EE 70.5 KB
  Тема 1: Поняття бізнеслогіки. Java EE Поняття бізнеслогіки Загальна задача роботи програми роботи з базою даних – читати з бази даних інформацію і показувати її користувачеві часто в обробленому вигляді і записувати в базу інформацію введену користувачем часто в обро
18117. Технологія Java Servlet 52.5 KB
  Тема 2: Технологія Java Servlet Сервлет Javaоб’єкт що працює всередині спеціальної програми сервлетконтейнера і застосовується для динамічного генерування даних. Кожен сервлет описується в окремому класі який реалізує інтерфейс Servlet. В більшості сервлети використовуються...
18118. JSP (Java Server Pages ) 97 KB
  Тема 3: JSP Java Server Pages Технологія Java Server Pages JSP є складовою частиною єдиної технології створення програм на основі технології J2EE з використанням webінтерфейсу. JSP це альтернативна технології Java Servlet методика розробки програм що динамічно генерують відповідь на ті або інш...
18119. Вступ до технології Enterprise JavaBeans 50 KB
  Тема 4: Вступ до технології Enterprise JavaBeans Java Platform Enterprise Edition чи Java EE раніше відома як Java 2 Platform Enterprise Edition чи J2EE до версії 1.5 – це програмна платформа частина Javaплатформи для розробки і запуску розподілених Javaпрограм з багаторівневою архітектурою що базуються на ком
18120. Транзакції в мові SQL 88.5 KB
  Тема 5: Транзакції в мові SQL Що таке транзакція Транзакція transaction може бути визначена як логічна послідовність операцій над даними яка розглядається як окрема цілісна частина роботи. У транзакції робляться або всі зміни або жодної. Транзакції підтримують ACIDвластиво
18121. Збережені процедури в Interbase/Firebird 52.5 KB
  Тема 6: Збережені процедури в Interbase/Firebird Збережені процедури Stored procedures – це програми які зберігаються в метаданих бази даних і виконуються на сервері. Прикладні програми можуть викликати stored procedure для виконання заданих в них операцій. Є два види збережених процеду
18122. Java Persistence API 77.5 KB
  PAGE 1 Тема 7: Java Persistence API Java Persistence API забезпечує object/relational mapping для роботи з реляційними даними в Javaпрограмах. Java Persistence складається з трьох частин: Java Persistence API Мови запитів Query language Метаданих для object/relational mapping Entities Entity – це легковісний ...