Форум сайта python.su
Я делаю мессенджер на питоне вот столкнулся с проблеммой:
client.send((" ").encode("utf-8")) client.send(input(f"{id(name)}> ").encode("utf-8")) client.send((" ").encode("utf-8"))
def listen_server(): while True: data = client.recv(2048) a = print(data.decode("utf-8")) def send_server(): listen_thread = Thread(target=listen_server) listen_thread.start() while True: client.send((" ").encode("utf-8")) client.send(input(f"{id(name)}> ").encode("utf-8")) client.send((" ").encode("utf-8")) import socket from threading import Thread print("Твой код может состоять максимум из 8 символов, ид цифр и букв.") name = input("Введите код: ") n1 = len(name) if n1 > 8: name[0:8] client = socket.socket( socket.AF_INET, socket.SOCK_STREAM, ) client.connect( ("localhost", 25565) ) if __name__ == '__main__': send_server()
Отредактировано ViRuss08 (Апрель 4, 2021 23:55:12)
Офлайн
ViRuss08очевидно вам нужно “придумать” свой протокол передачи
или посмотреть как это сделано у других: https://github.com/dmitry-vs/python-messenger
Или для начала вставлять имя отправителя прямо во сообщени, тоесть передавать не “Привет, как дела?” а “Джони228>Привет, как дела?” Это конечно неправильно, но для начала и так сойдет, а потом как поймете как на самом деле должен работать месенджер исправите.
[code python][/code]
Отредактировано PEHDOM (Апрель 5, 2021 10:16:47)
Офлайн
Что значит “нужно придумать свой протокол передачи”, И как это работает? Не я посмотрел что на гит хабе вы мне кинули. Но там много-много непонятных батников, .py и тд., и там все это смотреть и понимать трудно будет. Ну не оч я понимаю
Офлайн
ViRuss08Раньше письма писали, и на конвертах договорились писать кому,от кого,индекс, вне зависимости от того что внутри.Вот и здесь отправляйте кортеж или словарь или json где будут к примеру
Что значит “нужно придумать свой протокол передачи”
{"name":"xxx","message":"bla-bla"}
data['name'], data['message']
Офлайн
Можешь подсказать как это делается пж
Офлайн
Я нашел проблемму!
client.send((" ").encode("utf-8")) client.send(input(f"{id(name)}> ").encode("utf-8")) client.send((" ").encode("utf-8"))
Офлайн
Вообщем надо так:
def listen_server(): while True: time1 = time.strftime("%Y-%m-%d(%H.%M.%S)", time.localtime()) data = client.recv(2048) print("["+time1+"] "+data.decode("utf-8")) def send_server(): listen_thread = Thread(target=listen_server) listen_thread.start() while True: client.send((" ").encode("utf-8")) client.send((name + "> " + input(":::")).encode("utf-8")) client.send((" ").encode("utf-8")) import socket, time from threading import Thread print("Твой код может состоять максимум из 8 символов, ид цифр и букв.") name = input("Введите код: ") n1 = len(name) if n1 > 8: name[0:8] if name == "123098": name = "Юра" if name == "112233": name = "Федя" run = True client = socket.socket( socket.AF_INET, socket.SOCK_STREAM, ) if run == True: client.connect( ("localhost", 25565) ) client.send((f"К нам присоединился {name}").encode("utf-8")) run = False if __name__ == '__main__': send_server()
Офлайн