当前位置: 首页 > 知识库问答 >
问题:

Python类数据包混淆

宦博超
2023-03-14

我已经启动了一个项目来编写一个基于python的minecraft客户端/机器人,以连接到一个标准的minecraft服务器。我正在使用一个名为py mine client的库来执行数据包处理。我在使用库接收数据包时遇到了问题——我不知道调用什么函数/在哪里可以访问接收到的数据。主要问题是如何接收握手响应。我想我可以和客户联系。ReceivePacket函数,但它似乎不起作用

以下是我的代码:

import sys
import string
from client import *

def main():
    client = Client("192.168.1.15")
    client.connect()
    client.handshake("MyUsername")
    handshake = string16("\x02")
    client.recieve_packet(handshake)
    client.login_request("MyUsername")
    client.listener.stop()

if __name__ == "__main__":
    sys.exit(main())

下面是一个wiki,其中包含有关协议工作原理的信息:
http://wiki.vg/Protocol

共有1个答案

华景明
2023-03-14

查看库源代码,他们有一个侦听器类自动收集单独线程中的所有数据包。用户不应该调用receive_packet方法(侦听器使用它来报告新的传入数据)。所有数据包都附加到客户端。可以访问的数据包数组。不幸的是,这个库似乎不是线程安全的(可能依赖于全局锁),而且它们似乎有许多与套接字相关的bug。

由于这个库似乎非常简单,您可能只想重写它。

 类似资料:
  • 本文向大家介绍Python 数据类型,包括了Python 数据类型的使用技巧和注意事项,需要的朋友参考一下 示例 内置类型 布尔值 bool:True或的布尔值False。逻辑运算,如and,or,not可以针对布尔值进行。 在Python2.x和Python 3.x中,布尔值也是int。该bool类型是一个子int类型,True并且False是其唯一的实例: 如果布尔值用于算术运算,则将使用它们

  • 数据混合是Tableau的强大功能。它用于从多个数据源中的相关数据分析单个视图中的数据。 例如: 假设销售数据存在于关系数据库中,而销售目标数据存在于Excel工作表中。 现在,为了将实际销售额与目标销售额进行比较,根据共同维度混合数据以访问“销售目标”度量标准。 数据混合中涉及的两个数据源被称为主数据源和辅助数据源。 在主数据源和辅助数据源之间构建左连接,其中所有数据行来自主数据行,仅匹配来自辅

  • 正在学习mips数据路径,并有几个问题。 > 关于分支预测和暂停的混淆-思考:如果add指令跟随beq指令进入pipline(beq in ID阶段,add in fetch阶段),但执行了分支,那么add指令如何转换为no op?(设置了哪些控制信号,如何设置?) 级间缓冲区何时更新?想法:我认为它们会在时钟周期结束时更新,但无法验证这一点。此外,我还试图了解失速期间到底发生了什么。当需要暂停时

  • 标准数据类型 Python3 中有六个标准的数据类型: Number(数字) int bool float complex(复数) String(字符串) List(列表) Tuple(元组) Sets(集合) Dictionary(字典) (1) Number(数字) Python3 支持 int、float、bool、complex(复数)。 在Python 3里,只有一种整数类型 int,表

  • 你能说出来下面的代码有什么问题吗(我眼睛都碎了)?

  • 虽然 Python 是弱类型编程语言,不需要像 Java 或 C 语言那样还要在使用变量前声明变量的类型,但在一些特定场景中,仍然需要用到类型转换。 比如说,我们想通过使用 print() 函数输出信息“您的身高:”以及浮点类型 height 的值,如果在交互式解释器中执行如下代码: >>> height = 70.0 >>> print("您的身高"+height) Traceback (mos