Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Python: Сети

Войти
Регистрация
Восстановить пароль
 
3n_Core
Заблокирован
#1

Клиент-сервер на сокетах - Python

12.05.2016, 13:18. Просмотров 764. Ответов 1
Метки нет (Все метки)

Задача стоит в написании некого подобия чата. Получение на сервер работает, но хотелось бы сделать возможность обмена сообщениями клиент<->сервер. Логически понимаю, что нужно от сервера взять ответ и отправить назад клиенту, но как я не шаманил с этим, так и не понял, как это должно быть правильно сделано, дабы наконец-то заработало,прошу показать что нужно дописать в коде. Если кто может дать какие-то полезные статьи о pycrypto, стоит задача сделать шифровку через него

Клиент+Сервер:

Клиент
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# _*_ coding: utf-8 -*-
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('localhost', 9090))
 
 
def ecncryprion(message):
    enc_message=''
    for i in range(len(message)):
        enc_message+=chr(ord(message[i])+3)
    return(enc_message)
 
while True:
    data=input("Enter message:")
    data=ecncryprion(data)
    s.send(data.encode())
 
s.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
# _*_ coding: utf-8 -*-
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('localhost', 9090))
s.listen(100)
conn, addr = s.accept()
 
def decryprion(enc_message):
    dec_message=''
    for i in range(len(enc_message)):
        dec_message+=chr(ord(enc_message[i])-3)
    return(dec_message)
 
 
while True:
    data = conn.recv(2048).decode()
    data_dec=decryprion(data)
    if not data:
        continue
    else:
        print("Client:",addr,'\n',"Crypted message:",data)
        print(" Encryp. message:",data_dec)
            
conn.close()
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2016, 13:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Клиент-сервер на сокетах (Python):

Клиент - Сервер - Python
Добрый день. Есть элементарный клиент и сервер: Клиент HOST = 'х.х.х.х' PORT = хххх s =...

Сервер-клиент - Python
Нужно написать многопользовательский сервер. Сервер и клиент должны иметь возможность в любое время обменяться информацией. Клиент ее...

OpenID сервер, клиент - Python
Хочу написать свой OpenID сервер и клиент. Подскажите с чего начать, какую литературу почитать. Спасибо)

Элементарный клиент-сервер (Сокеты) - Python
Есть стандартный клиент и сервер из доков при подключении сокетов по локальной сети (ip клинта вида 192.168.х.х) все работает Стоит...

Клиент сервер через mac адрес - Python
Всем привет. Ребят помогите пожалуйста. Нужно написать мини прогу клиент и сервер которые используют mac адрес. У меня есть пример с Ip...

Сервер/клиент python3, закрытие сокета по CTRL+C - Python
Всем привет, недавно начал изучать Python, и наткнулся на трудности в работе с сокетом. Суть такова: У нас есть сервер, который мы...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Рыжий Лис
Просто Лис
308 / 255 / 70
Регистрация: 17.05.2012
Сообщений: 1,050
Записей в блоге: 4
01.05.2017, 12:16 #2
Сервер:
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
# _*_ coding: utf-8 -*-
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('localhost', 9090))
s.listen(100)
conn, addr = s.accept()
 
def decryprion(enc_message):
    dec_message=''
    for i in range(len(enc_message)):
        dec_message+=chr(ord(enc_message[i])-3)
    return(dec_message)
 
 
def ecncryprion(message):
    enc_message=''
    for i in range(len(message)):
        enc_message+=chr(ord(message[i])+3)
    return(enc_message)
 
 
while True:
    data = conn.recv(2048).decode()
    if not data:
        continue
    data_dec=decryprion(data)  #!
    print("Client:",addr,'\n',"Crypted message:",data)
    print(" Encryp. message:",data_dec)
    data=ecncryprion('ok')
    s.send(data.encode())
            
conn.close()
А клиента лучше сделать многопоточным. Один поток читает данные из сокета, второй - из клавиатуры.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.05.2017, 12:16
Привет! Вот еще темы с ответами:

Сервер и клиент RFCOMM на python не получается запустить - Python
Доброго времени суток!Недавно заинтересовался темой bluetooth и нашел пример с сервером и клиентом rfcomm.Вот код сервера:import bluetooth ...

Клиентская часть архитектуры "Клиент-Сервер" - Python
Доброго времени суток! В универе дали лб(см. во вложениях) на тему разработки клиентской части архитектуры «Клиент-Сервер» с помощью...

Клиентская часть архитектуры "Клиент-Сервер" и ошибка "ClientsDatabase is not defined" - Python
Всем Доброго Времени суток. В универе дали лб по работе с Python(см.вложение в теме...

Простой сервер-клиент на сокетах - C++
В сокетах ещё новичок прошу строго не ругать, моя первая попытка написать что-то. Собственно проблема заключается в том, что при...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru