def priemuotpravka(): try: while True: names = list(clients.values()) users = list(clients.keys()) p = 0 for i in users: data = i.recv(4096).decode('utf-8') data2 = str(data).split('::') if len(data2[1]) > 0: name = data2[0] msg = data2[1] for i in names: if name == i: pass else: print(f'{name}::{msg}') user = users[p] user.send(f'{str(name).encode("utf-8")}::{str(msg).encode("utf-8")}') p += 1 p = 0 except: pass ter2 = threading.Thread(target=priemuotpravka) ter2.start() Клиент: from socket import * import threading import time
name = input('Введите имя') client = socket( AF_INET, SOCK_STREAM )
Для начала было бы не плохо если бы отправлял код в правильной форме, чтобы никто глаза не ломал. А возможно это и есть твоя проблема. Используй табуляции
Сервер:
from socket import *
import threading
from time import sleep
server = socket(
AF_INET, SOCK_STREAM
)
server.bind(
('192.168.112.82', 7002)
)
clients = {}
def priemusers():
try:
while True:
server.listen()
user, adrr = server.accept()
user.send('Подключино'.encode('utf-8'))
name = user.recv(1024).decode('utf-8')
clients[user] = name
print(name)
except:
pass
ter1 = threading.Thread(target=priemusers)
ter1.start()
def priemuotpravka():
try:
while True:
names = list(clients.values())
users = list(clients.keys())
p = 0
for i in users:
data = i.recv(4096).decode('utf-8')
data2 = str(data).split('::')
if len(data2[1]) > 0:
name = data2[0]
msg = data2[1]
for i in names:
if name == i:
pass
else:
print(f'{name}::{msg}')
user = users[p]
user.send(f'{str(name).encode("utf-8")}::{str(msg).encode("utf-8")}')
p += 1
p = 0
except:
pass
ter2 = threading.Thread(target=priemuotpravka)
ter2.start()
Клиент:
from socket import *
import threading
import time
name = input('Введите имя')
client = socket(
AF_INET, SOCK_STREAM
)
client.connect(('192.168.112.82', 7002))
client.send(name.encode('utf-8'))
def send():
try:
while True:
client.send(f'{name.encode("utf-8")}::{input().encode("utf-8")}')
time.sleep(0.2)
except:
pass
ter2 = threading.Thread(target=send)
ter2.start()
def prinit():
try:
while True:
data = client.recv(4096)
msg = data.decode('utf-8')
print(msg)
except:
pass
ter1 = threading.Thread(target=prinit)
ter1.start()