简单的python TCP服务器,带有发送命令以与esp32通信

简单的python TCP服务器,带有发送命令以与esp32通信,python,tcp,esp32,python-sockets,Python,Tcp,Esp32,Python Sockets,我是python编程新手。我想创建一个使用esp32的简单TCP服务器。其思想是通过套接字向esp32发送命令数据=“{\“accel\”,“gyro\”,“time\”:1}”,然后等待大约10毫秒,等待esp32的回复。我试过很多例子,但都不管用。ESP32从该程序获取我的消息,但我无法从ESP32接收消息 import socket # bind all IP address HOST = '192.168.137.93' # Listen on Port PORT = 56606

我是python编程新手。我想创建一个使用esp32的简单TCP服务器。其思想是通过套接字向esp32发送命令数据=“{\“accel\”,“gyro\”,“time\”:1}”,然后等待大约10毫秒,等待esp32的回复。我试过很多例子,但都不管用。ESP32从该程序获取我的消息,但我无法从ESP32接收消息

import socket

# bind all IP address
HOST = '192.168.137.93'
# Listen on Port 
PORT = 56606 
#Size of receive buffer
localhost=('0.0.0.0', 56606)   
BUFFER_SIZE = 1024    
# Create a TCP/IP socket
data = '{\"accel\",\"gyro\",\"time\":1}'
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Bind the socket to the host and port
s.connect((HOST, PORT))
# send data to server
s.send(bytearray(data, 'utf-8'))
s.serve_forever()
print('Listen for incoming connections')
sock.listen(1)
while True:

    client, addr = s.accept()

    while True:
        content = client.recv(1024)

        if len(content) ==0:
           break

        else:
            print(content)

    print("Closing connection")
    client.close()
我尝试了更多,并尝试使用其他代码(见下文)。现在我收到消息,但在另一个端口(我可以通过wireshark跟踪它)

导入套接字
#本地主机的Ip地址
主机='192.168.137.93'
#连接到端口
端口=56606
#发送缓冲区的大小
缓冲区大小=4096
#要发送到服务器的数据
消息=“{\'accel\',\'gyro\',\'time\':1}”
#创建TCP/IP套接字
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#连接到服务器
s、 连接((主机、端口))
#向服务器发送数据
s、 发送(bytearray(消息“utf-8”))
#从服务器接收响应
data=“”
而len(数据)
我不会同时使用这两种代码。
有什么提示吗?

您的
数据
变量(或
消息
变量)的内容看起来无效——如果应该是JSON值,则不是。您的esp32上的代码是什么样子的?这似乎不适合将发送和接收完全分开-这是行不通的。将命令发送到ESP32后,您需要保持同一套接字
s
打开以接收响应。
import socket

# Ip of local host
HOST = '192.168.137.93' 
# Connect to Port 
PORT = 56606 
#Size of send buffer   
BUFFER_SIZE = 4096
# data to sent to server
message = '{\"accel\",\"gyro\",\"time\":1}'
# Create a TCP/IP socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Connect to server
s.connect((HOST, PORT))
# send data to server
s.send(bytearray(message, 'utf-8'))
# Receive response from server
data = ""       
while len(data) < len(message):
    data = s.recv(BUFFER_SIZE)
# Close connection
print ('Server to Client: ' , data)
s.close()