【问题标题】:How can receive UDP data from Python UDP client in MatLab.如何在 MatLab 中从 Python UDP 客户端接收 UDP 数据。
【发布时间】:2024-04-30 05:30:02
【问题描述】:

您好,我用 Python 编写了 UDP 客户端。这是代码。

import socket
import sys

# Create a UDP socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

server_address = ('localhost', 10000)
x=0.4
message = str(x)

try:

    # Send data
    print >>sys.stderr, 'sending "%s"' % message
    sent = sock.sendto(message, server_address)

    # Receive response
    print >>sys.stderr, 'waiting to receive'
    data, server = sock.recvfrom(4096)
    print >>sys.stderr, 'received "%s"' % data

finally:
    print >>sys.stderr, 'closing socket'
    sock.close()

现在我想在我的 MatLab/Simulink 模块中接收该数据。我做了一些研究,发现仪器控制工具箱可以使用 UDP 对象来获取数据。或者去 File Exchange 并获取 Simple UDP Communications App 代码。它只是一个函数,judp,它允许我发送和接收 UDP 数据包。

这是否适用于我的 python UDP 客户端? 有没有其他解决办法?

谢谢

【问题讨论】:

    标签: python matlab sockets


    【解决方案1】:

    UDP 自 1980 年以来就已标准化。虽然我同意,但有时相同的 3 个字母缩写并不意味着两者都喜欢互相交谈,在这种情况下,您可以依赖 UDP 库来兼容。如果它不起作用,要么是你犯了一个错误,要么是某些防火墙或类似的干扰。

    您找到了两个易于使用的选项。第一个需要工具箱的许可证。两者都可以,我看不出有什么缺点。

    还有很多其他选择,但它们最终都会形成一个更复杂的解决方案。例如,您可以编写一个 python 库来接收数据并从 MATLAB 调用它。这可能毫无意义,因为 MATLAB 可以做 UDP。

    【讨论】: