You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pydroid运行Python网络游戏代码报SyntaxError错误求助

问题解决

核心错误原因

你实际运行的network.py文件第5行存在语法输入错误,代码被意外截断并混入了多余符号:

self.client = socket.socket(socket.AF_INET, socket.SOCK_S>

这里原本应该是socket.SOCK_STREAM,错误的截断和>符号导致Python解析时认为这是非法表达式,抛出语法错误。

修复步骤

  1. 修正network.py的语法错误
    打开network.py,将第5行的错误代码替换为正确写法:

    self.client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    

    确保和你提供的代码示例完全一致。

  2. 修复game.py的缩进问题
    Python对缩进要求严格,你的main()函数内代码缩进混乱,修正后如下:

    def main():
        running = True
        n = network.Network()
        startPos = read(n.getPos())
        AttackOne = Player(startPos[0], startPos[1], 100, 100, (0,255,0))
        AttackTwo = Player(0, 0, 100, 100, (255,0,0))
        pygame.init()
        pygame.font.init()
         
        while running:
            AttackTwoPos = read(n.send(make((AttackOne.x, AttackOne.y))))
            AttackTwo.x = AttackTwoPos[0]
            AttackTwo.y = AttackTwoPos[1]
            AttackTwo.update()
            for event in pygame.event.get():
                if event.type == pygame.MOUSEBUTTONDOWN:
                    x, y = pygame.mouse.get_pos()
                    AttackOne.updateTouch(x - 50, y - 50)
                    print(x, y)
         
                if event.type == pygame.QUIT:
                    running = False
                    pygame.quit()
            redrawWindow(screen, AttackOne, AttackTwo)    
    
  3. 确保服务器端已运行
    你的代码是客户端逻辑,必须有对应的服务器端程序在指定端口(1221)运行,否则客户端会连接失败。如果没有服务器端代码,需要补充教程中的服务器部分。

额外注意事项

  • 检查Pydroid环境中是否安装了pygame库,若未安装可通过Pydroid的包管理器安装。
  • socket.gethostbyname(socket.gethostname())可能会获取到本地回环地址(127.0.0.1),如果是跨设备测试,需要将服务器地址改为实际的局域网IP。

内容的提问来源于stack exchange,提问作者XZeeno

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 14:32:54