Хочу написать камень ножницы бумагу на пайтоне что бы лучше понять тему сокетов, но появляется проблема с разрыванием соединения, понятно что нужно еще будет подредактировать код, поставить везде энкоды и декоды, но проблема не в этом, а в разрыве соеденения
#host
import socket
win_score = int(input('Победный счет:'))
score1 = 0
score2 = 0
sock = socket.socket()
sock.bind(('', 9090))
sock.listen()
conn, addr = sock.accept()
conn.send('Играем до', win_score)
while score1 <= win_score or score2 < win_score:
if score1 == score2 and score1 != 0:
conn.send('Оба игрока абсолюты ВСЕРОСа по КНБ')
print('Оба игрока абсолюты ВСЕРОСа по КНБ')
if score1 == win_score:
conn.send('Игрок 1 - абсолют ВСЕРОСа по КНБ'.encode())
print('Игрок 1 - абсолют ВСЕРОСа по КНБ')
if score2 == win_score:
conn.send('Игрок 2 - абсолют ВСЕРОСа по КНБ'.encode())
print('Игрок 2 - абсолют ВСЕРОСа по КНБ')
player1thing = input("Камень, Ножницы или Бумага?")
player2thing = conn.recv(1024).decode()
if player1thing == 'Камень':
if player2thing == 'Камень':
res = 'Ничья'
conn.send(res.encode())
conn.send('Счет игрока 1:'.encode(), score1)
conn.send('Счет игрока 2:'.encode(), score2)
if player2thing == 'Бумага':
res = 'Победа игрока 2'
conn.send(res.encode())
score2 += 1
conn.send('Счет игрока 1:'.encode(), score1)
conn.send('Счет игрока 2:'.encode(), score2)
if player2thing == 'Ножницы':
res = 'Победа игрока 1'
conn.send(res.encode())
score1 += 1
conn.send('Счет игрока 1:'.encode(), score1)
conn.send('Счет игрока 2:'.encode(), score2)
if player1thing == 'Бумага':
if player2thing == 'Камень':
res = 'Победа игрока 1'
score1 += 1
conn.send(res.encode())
conn.send('Счет игрока 1:'.encode(), score1)
conn.send('Счет игрока 2:'.encode(), score2)
if player2thing == 'Бумага':
res = 'Ничья'
conn.send(res.encode())
conn.send('Счет игрока 1:'.encode(), score1)
conn.send('Счет игрока 2:'.encode(), score2)
if player2thing == 'Ножницы':
res = 'Победа игрока 2'
conn.send(res.encode())
score2 += 1
conn.send('Счет игрока 1:'.encode(), score1)
conn.send('Счет игрока 2:'.encode(), score2)
if player1thing == 'Ножницы':
if player2thing == 'Камень':
res = 'Победа игрока 2'
score2 += 1
conn.send(res.encode())
conn.send('Счет игрока 1:'.encode(), score1)
conn.send('Счет игрока 2:'.encode(), score2)
if player2thing == 'Бумага':
res = 'Победа игрока 1'
conn.send(res.encode())
score1 += 1
conn.send('Счет игрока 1:'.encode(), score1)
conn.send('Счет игрока 2:'.encode(), score2)
if player2thing == 'Ножницы':
res = 'Ничья'
conn.send(res.encode())
conn.send('Счет игрока 1:'.encode(), score1)
conn.send('Счет игрока 2:'.encode(), score2)
conn.close()
#client
import socket
sock = socket.socket()
sock.connect(('localhost', 9090))
player2name = input('Имя игрока 2:')
ofofof = sock.recv(1024).decode()
print(ofofof)
res = ''
while res != 'Игрок 1 - абсолют ВСЕРОСа по КНБ' or res != 'Игрок 2 - абсолют ВСЕРОСа по КНБ' or res != 'Оба игрока абсолюты ВСЕРОСа по КНБ':
player2thing = input("Камень, ножницы или бумага?")
sock.send(player2thing.encode())
res = sock.recv(1024).decode()
print(res)
score1inf = sock.recv(1024).decode
print(score1inf)
score2inf = sock.recv(1024).decode()
print(score2inf)
sock.close()