You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于127.0.0.1回环地址实现同一ESP32多Toit应用通信的方案咨询

ESP32 Toit系统上单设备多应用回环通信方案咨询

我找到了一种可在单个ESP32上运行的多个应用之间实现通信的方法,目前已验证可正常运行,不过我对该方案的合理性存在疑问,特来咨询。

我想到存在一个特殊地址127.0.0.1,即loopback(回环)地址,也叫localhost(本地主机)。通常该地址用于在开发者当前使用的同一台计算机上建立IP连接,比如开发客户端-服务端程序时,使用localhost无需额外设备即可在单设备内调试通信协议。
同时,使用回环接口会绕过所有本地网络接口硬件。

我猜测Toit系统也遵循这一原理,便尝试使用该方案通信,结果确实可以正常运行。以下是两个测试应用的代码和并行终端的运行日志,测试时先启动Receiver.toit应用,再运行sender.toit。


测试代码

receiver.toit

import net
main :
  network_interface := net.open
  serverSocket := network_interface.tcp_listen 1234
  print ("Wait...")
  socket := serverSocket.accept
  print ("Accept was done...")
  data := socket.read
  clientAddr := socket.peer_address.ip.stringify
  print ("[$clientAddr]->[$data.to_string]")
  socket.close
  print ("Socket closed...")
  serverSocket.close
  print ("ServerSocket closed...")

sender.toit

import net
LOOPBACK := "127.0.0.1"
main :
  network_interface := net.open
  clientSocket :=  network_interface.tcp_connect LOOPBACK 1234
  print ("Connect...")
  clientSocket.write "Hello from flatmate..."
  print ("Write was done...")
  clientSocket.close
  print ("Socket closed...")

运行日志

接收端终端输出

micrcx@micrcx-desktop:~/toit_apps/Hsm3/tests$ toit -d=dell run receiver.toit
2021-10-08T06:41:03.937058Z: <process initiated>
Wait...
Accept was done...
[127.0.0.1]->[Hello from flatmate...]
Socket closed...
ServerSocket closed...
2021-10-08T06:41:35.166388Z: <process terminated - exit code: 0>
micrcx@micrcx-desktop:~/toit_apps/Hsm3/tests$ 

发送端终端输出

micrcx@micrcx-desktop:~/toit_apps/Hsm3/tests$ toit -d=dell run sender.toit
2021-10-08T06:41:34.641365Z: <process initiated>
Connect...
Write was done...
Socket closed...
2021-10-08T06:41:34.917420Z: <process terminated - exit code: 0>
micrcx@micrcx-desktop:~/toit_apps/Hsm3/tests$ 

内容的提问来源于stack exchange,提问作者Michael Kanzieper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 14:45:03