import socket
import threading
import json
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
with open('config.json', 'r') as file:
config = json.load(file)
for address in config['config']:
try:
sock.connect((address['address'][0], int(address['address'][1])))
except ConnectionRefusedError:
print('[LOG] - Ошибка подключения: проверьте подключение к интернету!')
else:
print('[LOG] - Вы успешно подключены!')
nickname = str(input('Ваш логин: '))
def recv():
while True:
data = sock.recv(1024)
if data:
print('\n' + data.decode('utf-8'))
def sender():
while True:
message = input('{}'.format(nickname) + ': ')
string = nickname + ': ' + message
sock.send(string.encode('utf-8'))
thread_rec = threading.Thread(target=recv)
thread_sender = threading.Thread(target=sender)
thread_rec.start()
thread_sender.start()
def recv():
while True:
data = sock.recv(1024)
if data:
print('\n' + data.decode('utf-8'))
async def sender():
session = PromptSession()
while True:
try:
with patch_stdout():
message = await session.prompt_async('{}'.format(nickname) + ': ')
string = nickname + ': ' + message
sock.send(string.encode('utf-8'))
except socket.error:
pass
thread_reciev = threading.Thread(target=recv, name="reciev_message")
thread_reciev.start()
asyncio.get_event_loop().run_until_complete(sender())
Нужно, чтобы строка была такого формата: nickname отправителя + сообщение отправителя, но при отправке сообщения, у второго пользователя, после получения сообщения появляется чистая строка ввода, как это решить?
но при отправке сообщенияи это впаяй что там при отправке происходит, а что при получении, а что у других не происходит и у тебя не должно происходить