Форум программистов, компьютерный форум, киберфорум
Python: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 12.09.2014
Сообщений: 4

Передача пакетов по порядку

22.06.2017, 15:36. Показов 1687. Ответов 1

Студворк — интернет-сервис помощи студентам
Пишу шифрование с закрытым ключом. Надо по порядку передать 3 числа (кто в курсе алгоритма работы), а затем само сообщение (далее это будет файл в битовом представлении). Но над этим я ещё не работала, потому что ступор на этапе передачи чисел: они могут как все 3 записаться в 1 переменную, так и по отдельности. Хочется как-то это контролировать, и не костыльными методами. Неделю штурмовала интернет - ничего. Буду благодарна за помощь.

Серевер
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import socket
print "Server is running"
sock = socket.socket()
sock.bind(('', 8060))
sock.listen(5)  # queue size
conn, addr = sock.accept()
print 'connected:', addr
b = 6
print 's'
try:
    '''Call 1'''
    g = int(conn.recv(100024))
    print 'Recieving 1: ', g
 
    '''Call 2'''
    p = int(conn.recv(100024))
    print 'Recieving 2: ', p
 
    '''Call 3'''
    A = conn.recv(100024)
    #A = int(conn.recv(100024))
    print 'Recieving 3: ', A
    
    B = pow(g, b) % p
    print B
    
    '''Call 4'''
    conn.send(str(B))
    key = A ** b % p
    message = 'Good morning'
    print 'Bob: message to encrypt\n    ', message
    secret = ''
    for i in message:
        secret += chr(ord(i) + key)
        print secret
    print 'Bob: message to send\n    ', secret
    '''Call 5'''
    conn.send(secret)
finally:
    conn.close()
Клиент
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import socket
print "Client is running"
sock = socket.socket()
sock.connect(('localhost', 8060))
a = 3
g = 5
p = 11
A = g ** a % p
print 'c'
print A
 
try:
    '''Call 1'''
    sock.send(str(g))
    print "Sending 1"
 
    '''Call 2'''
    sock.send(str(p))
    print "Sending 2"
 
    '''Call 3'''
    sock.send(str(A))
    print "Sending 3"
 
    '''Call 4'''
    B = int(sock.recv(100024))
    key = B ** a % p
    '''Call 5'''
    got = sock.recv(100024)
    print 'Alice: received message\n    ', got
    truem = ''
    for i in got:
        truem += chr(ord(i) - key)
    print 'Alice: encrypted message\n    ', truem
 
finally:
    sock.close()
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.06.2017, 15:36
Ответы с готовыми решениями:

Передача пакетов
нужна помощь в реализации В системе передачи данных производится обмен пакетами между пунктами А и В по дуплексному каналу связи...

Межсетевая передача пакетов
Есть сети 192.168.1.0/24 192.168.2.0/24 (порты роутеров между сетями) 192.168.0.0/24 Настроил маршрутизацию, но соединения все...

Передача пакетов на IP и порт
Хочу узнать как средствами Delphi сделать передачу пакетов на IP:Port с установкой объёма пакетов и скоростью их передачи а также выбором...

1
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
24.06.2017, 07:33
Упаковать три числа в пакет и послать за один раз?
Python
1
2
3
4
5
6
7
8
9
10
import struct
 
a, b, c = 11, 3232, 4343
packet = struct.pack('LLL', a, b, c)  # unsigned long
print(packet)
 
# ...
 
a1, b1, c1 = struct.unpack('LLL', packet)
print(a1, b1, c1)
Добавлено через 3 минуты
Проще, передаём одной строкой:
Python
1
2
3
4
5
6
7
8
a, b, c = 11, 3232, 4343
packet = ' '.join(map(str, [a, b, c]))
print(packet)
 
# ...
 
a1, b1, c1 = packet.split(' ')
print(a1, b1, c1)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.06.2017, 07:33
Помогаю со студенческими работами здесь

OpenGL Передача пакетов
Созданние графической модели одноканальной системы обработки информации. Тех. задание: Средствами OpenGL. осуществитьпостроение...

Передача пакетов по Ethernet
Приветствую! Необходимо обмениваться инфой с контроллером PERCO по ethernet. Как я понял обмен нужно реализовывать с использованием...

Передача пакетов по сети
Здравствуйте. Задание такое: создать модель передачи пакетов по сети (топология-кольцо) между двумя узлами. В сети 6 узлов. Формула для...

Передача не параметров не по-порядку
Всем привет! Начал вникать в C# и сразу появился вопрос. Возможно ли передавать параметры не по-порядку? Если да, то как правильно? К...

Передача пакетов между серверами
Доброго времени суток! По тз необходимо реализовать "Хаб". Чтобы к этому хабу отправляли пакеты и сервера и клиенты, а хаб делал рассылку...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru