Я пытаюсь сделать сетевую игру для 2 игроков. Я создал сервер и клиенты, они могут соединиться. Проблема заключается в том, что когда два клиента пытаются отправить информацию, сервер не обрабатывает информацию от обоих клиентов правильно, а обрабатывает ее правильно, когда подключен только один клиент. Это код сервера:
import socket
import os
numOfClients = 0
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serversocket.bind(('192.168.88.1', 10000))
serversocket.listen(5)
while numOfClients != 2:
if numOfClients == 0:
c, a = serversocket.accept()
elif numOfClients == 1:
c1, a1 = serversocket.accept()
if numOfClients == 0:
print(a, 'has connected!')
elif numOfClients == 1:
print(a1, 'has connected!')
numOfClients += 1
print('Connected to ', a)
print("2 Players have connected!")
while True:
msg1 = c.recv(1024)
if msg1 != b'':
print(msg1, '1')
msg2 = c1.recv(1024)
if msg2 != b'':
print(msg2, '2')
Это весь код клиента, который вам действительно нужен:
# Socket Stuff
port = 10000
host = '192.168.88.1'
socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server = host, port
socket.connect(server)
socketMsg = b''
# Main Game loop
while True:
# Calls Functions
socket.send(socketMsg)
# socketMsg is assigned above, it is assigned to b'Works!' just so that I can see if it actually works
socketMsg = b''
redrawWin()
get_events()
Если я сделал что-то не так в этом посте, извините, этомой второй пост в стеке