如何将消息从纯数据发送到Python?

绍里亚

我正在尝试将消息从Pure Data发送到Python(以显示在SSD1306 OLED上)。有人建议我使用套接字。他们还提供了以下Python代码:

import socket
s = socket.socket()
host = socket.gethostname()
port = 3000

s.connect((host, port))
mess = "hello"
Msg = mess + " ;"
s.send(message.encode('utf-8'))

在“纯数据”中,[netreceive 3000]对象和打印对象连接在一起。

这可行,但是我想做相反的事情。使用套接字将数据从“纯数据”发送到Python。我找到了一些教程,但他们都谈到了Python到Python消息的接收和发送。我该如何实现Pd?

吉尔伯托·哈斯诺夫

您可以使用Python的socket库连接到通过发送信息的Pd补丁[netsend]这是一个可行的最小示例。在Pd中,创建一个将A连接[netsend]localhost网络上的端口的简单补丁

在此处输入图片说明

在Python中创建并保存一个侦听器脚本(从此处改编)。以下脚本使用Python 3.6:

import socket
import sys

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_address = ('localhost', 13001)
print(f'starting up on {server_address[0]} port {server_address[1]}')
sock.bind(server_address)
sock.listen(1)

while True:
    print('waiting for a connection')
    connection, client_address = sock.accept()
    try:
        print('client connected:', client_address)
        while True:
            data = connection.recv(16)
            data = data.decode("utf-8")
            data = data.replace('\n', '').replace('\t','').replace('\r','').replace(';','')
            print(f'received {data}')
            if not data:
                break
    finally:
        connection.close()

运行此脚本,然后运行Pd的补丁程序。拖动该数字框将向Python发送值。在上面的示例中,所有接收到的值仅带有其标签打印:

在此处输入图片说明

然后,您可以根据自己的需要进行调整。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章