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

Python发送格式错误的UDP数据包

毕富
2023-03-14
232646  311.898009000   172.56.16.78    192.168.0.3 UDP 64  Source port: 31947  Destination port: 5001 [ETHERNET FRAME CHECK SEQUENCE INCORRECT]
Frame check sequence: 0xf5b6d06d [incorrect, should be 0xb0c869e3]

有人知道怎么修吗?这是为什么我不能在我的Android设备上接收UDP数据包的原因吗?

服务器代码:

import http.server
import socket
import threading
import socketserver

class ThreadedUDPRequestHandler(socketserver.BaseRequestHandler):
    def handle(self):
        data = self.request[0].strip().decode("utf-8")
        print("{} Recieved: ".format(self.client_address) + data)
        sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        response = data.upper()
        sock.sendto(bytes(response, "utf-8"), self.client_address)
        print("{} Sent: {}".format(self.client_address,response))

if __name__ == "__main__":
    udpserver = ThreadedUDPServer((HOST,PORT+1), ThreadedUDPRequestHandler)
    udp_thread = threading.Thread(target=udpserver.serve_forever)
    udp_thread.daemon = True
    udp_thread.start()
    print("UDP serving at port", PORT+1)
    while True:
        pass
    udpserver.shutdown()

共有1个答案

丰超
2023-03-14

您似乎是在使用常规的userspace套接字发送数据包。在这种情况下,由于FCS是由网络接口卡物理生成的,所以数据包被错误发送的可能性很小。

您可能看到的是由于完全不同的原因造成的FCS错误,可以放心地忽略不计。

我会寻找其他原因来解释为什么其他设备不能接收数据包,比如防火墙或NAT。首先使用netcat或类似的工具在两台机器之间发送和接收UDP数据包。

 类似资料:
  • 控制器(我忽略了导入) 下面是我在控制器中引用的相关html页面。您可以假设每一个服务和存储库都正常工作,并完成了它的工作。 这是确认页面。这里有点不对劲。插入到表单的隐藏输入框中的数据不会被提交: 扬尼克

  • 问题内容: 即使已经存在一个类似的主题,我也注意到它可以追溯到两年前,因此我认为打开一个新主题更为合适。 我试图弄清楚如何从Linux内核(3.3.4)发送UDP数据包,以便监视随机数生成器(/drivers/char/random.c)的行为。到目前为止,由于sock_create和sock_sendmsg函数,我已经设法监视了一些事情。您可以在此消息的末尾找到我使用的典型代码。(您可能还希望在

  • 我们有一个场景,(UDP客户端程序)向(UP服务器)发送UDP数据包 TCP在数据通信开始之前和结束之后执行握手。UDP没有。 那么,运行在上的应用程序失败的原因是否是上的服务器程序没有准备好(关闭)接收UDP数据包?

  • 本文向大家介绍python UDP(udp)协议发送和接收的实例,包括了python UDP(udp)协议发送和接收的实例的使用技巧和注意事项,需要的朋友参考一下 需要建立2个文件,一个作为客户端,一个作为服务端 文件一 作为客户端client,文件二作为服务端server udp的特点是不需要建立连接 文件一客户端 文件二服务端 注意:先运行文件二在运行文件一 以上这篇python UDP(ud

  • 问题内容: 我正在尝试将JSON发送到elasticSearch。我尝试使用Postman和SOAPUI数据是 我回来了以下错误 但是当我发布单个JSON数组即 然后工作正常。我是ElasticSearch的新手,所以不确定出什么问题。 问题答案: 首先尝试使用大括号,然后为数组命名。尝试一下,看看是否可行。 例如: 可能有效,因为它包含在对象内部。 更好 在尝试时,我发现它可以将数组隐式转换为J