Networking 用于网络打印、坏标签打印的数据包分析

Networking 用于网络打印、坏标签打印的数据包分析,networking,printing,wireshark,Networking,Printing,Wireshark,我们这里有一台打印机,它应该在木头上打印标签,但是,有些标签的数据要么被中途切断(比如,当前作业被下一个作业更新),因此数据不完整,要么传输到打印机的数据有问题,它打印了一半的标签 我对网络打印和使用“异步”打印机打印有点陌生。我已经问过卖家,如何解决这个问题;他让我检查作业中的脚本,但是脚本只调用IP,其他什么都不调用 这是wireshark捕获的图片和链接,乍一看这似乎很正常,但我在数据包方面没有太多经验来注意是否有问题(冲突等)。它们似乎也出了问题;当标签被切断(左半部分)时会发生这种情况

我们这里有一台打印机,它应该在木头上打印标签,但是,有些标签的数据要么被中途切断(比如,当前作业被下一个作业更新),因此数据不完整,要么传输到打印机的数据有问题,它打印了一半的标签

我对网络打印和使用“异步”打印机打印有点陌生。我已经问过卖家,如何解决这个问题;他让我检查作业中的脚本,但是脚本只调用IP,其他什么都不调用

这是wireshark捕获的图片和链接,乍一看这似乎很正常,但我在数据包方面没有太多经验来注意是否有问题(冲突等)。它们似乎也出了问题;当标签被切断(左半部分)时会发生这种情况。所以序列可能是15,14,13(截止),13,13,12,10,。。。没有真正的模式

Wireshark文件:

Python脚本:


如果您要更改内容,则无法进行测试是一个严重的问题。您的图片用于打印代码不够;你需要看得更远。 一般来说,在这里发布代码比在dropbox上发布代码要好。您的dropbox文件将在某个时候过期,然后您在这个问题中放置的链接突然失效。将来,在这个问题上结结巴巴的人会因为信息缺失而感到困惑

这可能不是你问题的答案,但它会让你知道该怎么看

在这些预备工作之后:您提供的pyhon代码有许多例程。大多数代码只会将XML代码扔到打印机上。这些可以在pcap文件中找到

您需要从dropbox上的rea模块了解的内容:

def STARTJOB(ip):
    xml = '<REA-JET><REA-PI version="3.3"><Command name="STARTJOB" id="0"><Data /></Command></REA-PI></REA-JET>'
    return ExecuteCommand(ip,xml)

def STOPJOB(ip):
    xml = '<REA-JET><REA-PI version="3.3"><Command name="STOPJOB" id="0"><Data /></Command></REA-PI></REA-JET>'
    return ExecuteCommand(ip,xml)

但我不知道返回码和消息的含义。意思是在
REA-PI/Status/code

中缺少很多信息。当你说“它只调用IP”时,这是什么意思<代码>卷曲<代码>nc?小的等待时间(
sleep 1
)能解决问题吗?是否有一种方法可以从脚本方面确定打印是否准备就绪?你能把脚本的相关部分添加到问题中吗?当您向打印机发送新标签时,是否会停止打印上一个标签?睡眠不会真正起作用,因为这是生产打印机,过多的“睡眠”会真正延迟打印。如果数据为空,则脚本中已存在休眠(1)。我无法对它进行广泛的测试,因为这需要停止生产,这是这里真正的问题,但我目前的知识也找不到错误。
def Feedback(data):
    # Get feedback from the controller, so we can display it in the UI
    # Two parameters are returned, the status code and the status message
    import xml.etree.ElementTree as ET1
    root = ET1.fromstring(data)
    try:
        code = root.find('REA-PI/Status/Code').text  
    except:
        code = ''
    try:
        message = root.find('REA-PI/Status/Message').text
        if message == None:
            message = ''
    except:
        message = ''

    return code, message