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

2024-04-29 11:38:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将消息从纯数据发送到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


Tags: 数据代码importhost消息helloportconnect
1条回答
网友
1楼 · 发布于 2024-04-29 11:38:53

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

enter image description here

用Python创建并保存侦听器脚本(改编自here)。下面的脚本使用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的修补程序。拖动numberbox将向Python发送值。在上面的示例中,所有接收到的值仅打印有标签:

enter image description here

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

相关问题 更多 >