Страницу Назад
Поискать другие аналоги этой работы

350

Лабораторная работа №2 по дисциплине: Программное обеспечение инфокоммуникационных технологий. Вариант 18

ID: 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 Кбайт
Фаил: Microsoft Word (.docx)
-------------------
Обратите внимание, что преподаватели часто переставляют варианты и меняют исходные данные!
Если вы хотите, чтобы работа точно соответствовала, смотрите исходные данные. Если их нет, обратитесь к продавцу или к нам в тех. поддержку.
Имейте ввиду, что согласно гарантии возврата средств, мы не возвращаем деньги если вариант окажется не тот.
-------------------

   Скачать

   Добавить в корзину


        Коментариев: 0


Есть вопросы? Посмотри часто задаваемые вопросы и ответы на них.
Опять не то? Мы можем помочь сделать!

Некоторые похожие работы:

К сожалению, точных предложений нет. Рекомендуем воспользоваться поиском по базе.

Не можешь найти то что нужно? Мы можем помочь сделать! 

От 350 руб. за реферат, низкие цены. Просто заполни форму и всё.

Спеши, предложение ограничено !



Что бы написать комментарий, вам надо войти в аккаунт, либо зарегистрироваться.

Страницу Назад

  Cодержание / Программное обеспечение инфокоммуникационных технологий / Лабораторная работа №2 по дисциплине: Программное обеспечение инфокоммуникационных технологий. Вариант 18
Вход в аккаунт:
Войти

Забыли ваш пароль?

Вы еще не зарегистрированы?

Создать новый Аккаунт


Способы оплаты:
UnionPay СБР Ю-Money qiwi Payeer Крипто-валюты Крипто-валюты


И еще более 50 способов оплаты...
Гарантии возврата денег

Как скачать и покупать?

Как скачивать и покупать в картинках


Сайт помощи студентам, без посредников!