Страницу Назад
Поискать другие аналоги этой работы
350 Лабораторная работа №2 по дисциплине: Программное обеспечение инфокоммуникационных технологий. Вариант 18ID: 245263Дата закачки: 22 Июля 2024 Продавец: xtrail (Напишите, если есть вопросы) Посмотреть другие работы этого продавца Тип работы: Работа Лабораторная Форматы файлов: Microsoft Word Сдано в учебном заведении: ДО СИБГУТИ Описание: Практическое занятие. Сетевые приложения Цель занятия: изучение принципа работы сетевых приложений с помощью языка программирования в телекоммуникации Python. Сценарий: Сокеты. Передача данных через UNIX сокеты 1. Создайте два скрипта: net_serv_ipc.py и net_client_ipc.py в директории python_labs своей домашней директории. Введите эти строки: #!/usr/bin/env python3 # net_serv_ipc.py import os import socket SOCKET_FILE = \'./echo.socket\' if os.path.exists(SOCKET_FILE): os.remove(SOCKET_FILE) print("Открываем UNIX сокет...") server = socket.socket(socket.AF_UNIX, socket.SOCK_DGRAM) server.bind(SOCKET_FILE) print("Слушаем...") while True: datagram = server.recv(1024) if not datagram: break else: print("-" * 20) print(datagram.decode(\'utf-8\')) if "DONE" == datagram.decode(\'utf-8\'): break print("-" * 20) print("Выключение...") server.close() os.remove(SOCKET_FILE) print("Выполнено") #!/usr/bin/env python3 # net_client_ipc.py import os import socket SOCKET_FILE = \'./echo.socket\' print("Подключение...") if os.path.exists(SOCKET_FILE): client = socket.socket(socket.AF_UNIX, socket.SOCK_DGRAM) client.connect(SOCKET_FILE) print("Выполнено.") print("Ctrl-C что бы выйти.") print("Отправьте \'DONE\' что бы выключить сервер.") while True: try: x = input("> ") # for py2 use raw_input if "" != x: print("ОТПРАВЛЕНО: %s" % x) client.send(x.encode(\'utf-8\')) if "DONE" == x: print("Выключение.") break except KeyboardInterrupt as k: print("Выключение.") break client.close() else: print("Не могу соединиться!") print("Выполнено") 2. Запустите net_serv_ipc.py в первой консоли, а net_client_ipc.py во второй. Проанализируйте результат. 3. Переписать приложения net_serv_ipc.py и net_client_ipc.py для организации передачи данных с помощью службы SOCK_STREAM. Организовать двусторонний обмен данными. Сценарий: Сокеты. Передача данных через INET сокеты 1. Создайте два скрипта: net_serv_tcp.py и net_client_tcp.py в директории python_labs своей домашней директории. Введите эти строки: #!/usr/bin/env python3 # net_serv_tcp.py import socket TCP_IP = \'127.0.0.1\' TCP_PORT = 5018 BUFFER_SIZE = 20 # Normally 1024, but we want fast response s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind((TCP_IP, TCP_PORT)) s.listen(1) conn, addr = s.accept() print("Connection address: {}".format(addr)) while 1: data = conn.recv(BUFFER_SIZE) if not data: break print("received data: ",data.decode(\'utf-8\')) conn.send(data) # echo conn.close() #!/usr/bin/env python3 # net_client_tcp.py import socket TCP_IP = \'127.0.0.1\' TCP_PORT = 5018 BUFFER_SIZE = 1024 MESSAGE = "Hello, World!" s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((TCP_IP, TCP_PORT)) s.send(MESSAGE.encode(\'utf-8\')) data = s.recv(BUFFER_SIZE) s.close() print("received data: ",data.decode(\'utf-8\')) 2. Запустите net_serv_tcp.py в первой консоли, а net_client_tcp.py во второй. Проанализируйте результат. 3. Создайте два скрипта: net_serv_udp.py и net_client_udp.py в директории python_labs своей домашней директории. Введите эти строки: #!/usr/bin/env python3 # net_serv_udp.py import socket UDP_IP = "127.0.0.1" UDP_PORT = 5018 sock = socket.socket(socket.AF_INET, # Internet socket.SOCK_DGRAM) # UDP sock.bind((UDP_IP, UDP_PORT)) while True: data, addr = sock.recvto(1024) # buffer size is 1024 bytes print("received message: ",data.decode(\'utf-8\')) if "Hello, World!" == data.decode(\'utf-8\'): break #!/usr/bin/env python3 # net_client_udp.py import socket UDP_IP = "127.0.0.1" UDP_PORT = 5018 MESSAGE = "Hello, World!" print("UDP target IP: {}".format(UDP_IP)) print("UDP target port: {}".format(UDP_PORT)) print("message: {}".format(MESSAGE)) sock = socket.socket(socket.AF_INET, # Internet socket.SOCK_DGRAM) # UDP sock.sendto(MESSAGE.encode(\'utf-8\'), (UDP_IP, UDP_PORT)) 4. Запустите net_serv_udp.py в первой консоли, а net_client_udp.py во второй. Проанализируйте результат. 5. Написать приложения, симулирующие передачу данных по протоколу HTTP с помощью INET сокетов и протокола TCP. Организовать двухсторонний обмен данными между клиентом и сервером. Для обращения к серверу подойдёт вариант для работы с TCP из предыдущих заданий. Изменим код для обращения к сайту, например, ya.ru. Для того, чтобы сервер ответил, необходимо передать запрос, как делали это в 1 лабораторной работе. TCP_PORT = 50xx = 5018 UDP_PORT = 50xx = 5018, где xx=18 - номер варианта. По каждому выполненному пункту приведены краткие выводы. Комментарии: Без замечаний. 2020 год Преподаватель: Колосовский А.В. Размер файла: 292,6 Кбайт Фаил: (.docx) ------------------- Обратите внимание, что преподаватели часто переставляют варианты и меняют исходные данные! Если вы хотите, чтобы работа точно соответствовала, смотрите исходные данные. Если их нет, обратитесь к продавцу или к нам в тех. поддержку. Имейте ввиду, что согласно гарантии возврата средств, мы не возвращаем деньги если вариант окажется не тот. -------------------
Коментариев: 0 |
||||
Есть вопросы? Посмотри часто задаваемые вопросы и ответы на них. Опять не то? Мы можем помочь сделать! Некоторые похожие работы:К сожалению, точных предложений нет. Рекомендуем воспользоваться поиском по базе. |
||||
Не можешь найти то что нужно? Мы можем помочь сделать! От 350 руб. за реферат, низкие цены. Спеши, предложение ограничено ! |
Вход в аккаунт:
Страницу Назад
Cодержание / Программное обеспечение инфокоммуникационных технологий / Лабораторная работа №2 по дисциплине: Программное обеспечение инфокоммуникационных технологий. Вариант 18
Вход в аккаунт: