Python 如何改进服务器的连接?

Python 如何改进服务器的连接?,python,python-3.x,sockets,Python,Python 3.x,Sockets,我最近在pygame中开发了一个小的基本多人游戏,最近刚刚完成了服务器。但服务器的问题是,除非其他玩家移动,否则其他玩家的屏幕不会更新。这个问题发生在游戏的客户端和主机端。有没有办法让我的服务器至少更新一下其他玩家的移动 这是服务器代码,非常感谢您的帮助 import socket from _thread import * s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server = '11.0.18.15' port =

我最近在pygame中开发了一个小的基本多人游戏,最近刚刚完成了服务器。但服务器的问题是,除非其他玩家移动,否则其他玩家的屏幕不会更新。这个问题发生在游戏的客户端和主机端。有没有办法让我的服务器至少更新一下其他玩家的移动

这是服务器代码,非常感谢您的帮助


import socket
from _thread import *

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

server = '11.0.18.15'
port = 7245

server_ip = socket.gethostbyname(server)

try:
    s.bind((server, port))

except socket.error as e:
    print(str(e))

s.listen(5)
print("Waiting for connection...")

currentId = "0"
pos = ["0:200,200", "1:100,100"]


def threaded_client(conn):
    global currentId, pos
    conn.send(str.encode(currentId))
    currentId = "1"
    reply = ""
    while True:
        try:
            data = conn.recv(2048)
            reply = data.decode('utf-8')
            if not data:
                conn.send(str.encode("Goodbye"))
                break
            else:
                print("Received: " + reply)
                arr = reply.split(":")
                id = int(arr[0])
                pos[id] = reply

                if id == 0: nid = 1
                if id == 1: nid = 0

                reply = pos[nid][:]
                print("Sending: " + reply)

            conn.sendall(str.encode(reply))
        except:
            break
    print("Connection Closed")
    conn.close()


while True:
    conn, addr = s.accept()
    print("Connected to: ", addr)

    start_new_thread(threaded_client, (conn,))


不要使用“玩家”和“其他玩家”,而是使用“玩家A”和“玩家B”或其他同样明确的东西。我不知道您是否希望客户端中有数据,但客户端应定期发送数据请求(即使它不移动),然后服务器应立即发送应答-即使没有数据发送。当没有数据时,您应该发送一些消息-即
“空”
。pygame的网络库: