我正在尝试制作一个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()
如果我在这篇文章中做错了什么,我很抱歉,这是我在stack上的第二篇文章
您的第一个套接字连接阻止了以后的连接。有多种解决方案
select
模块设计用于管理此功能李>相关问题 更多 >
编程相关推荐