在 Arduino Mega 上同时运行以太网服务器 + 客户端角色

问题描述 投票:0回答:1

我在网上找不到这方面的明确答案。一方面我必须运行 Ardu + 以太网屏蔽作为简单的 Telnet 服务器,另一方面 Arduino 需要作为客户端运行。不幸的是我无法改变角色。

Ardu = 服务器 --> PC-SW 运行通过 Telnet 与 Arduino 通信,PC 是客户端 Ardu = 客户端 --> 有需要充当服务器的外部设备(电源)

我的问题和我的理解问题 - Arduino /以太网库是否能够处理 Arduino 同时以不同的角色工作???

我做了简单的测试,看起来它有效,但我不明白。

在库 text 的最后使用,并在 setup() 中使用命令

TelnetPrint.begin();
它开始监听客户端的谈话(在我的例子中是一台电脑)。

另一方面(当 Arduino 是客户端时)在我的 main() 中,我通过

client.connect
text

打开与外部服务器的连接

但我想了解为什么这样做有效,或者我是否遇到了即将出现的问题:-)

谢谢, 马库斯

我尝试运行它,它似乎有效,但不知道为什么它有效。想了解 Arduino 是否可以同时作为服务器和客户端运行。

tcp arduino telnet ethernet
1个回答
0
投票

EthernetClient 对象包装了一个 TCP 套接字。一个普通的 TCP 套接字连接到 IP 地址和端口。

EthernetServer 监听端口。如果远程客户端套接字与服务器联系,它会在空闲端口上创建与远程客户端套接字连接的本地套接字,并且以太网服务器返回包装该套接字的以太网客户端对象。您写入或打印到以太网客户端的所有内容都会发送到该远程套接字。

如果Arduino创建了一个EthernetClient套接字并将其连接到服务器的IP地址和端口,那么服务器端就有一个套接字并且这些套接字是连接的。您在一侧写入/打印的内容可以从另一侧的插槽中读取。

我有一个 Arduino 草图,包含 3 个服务器、2 个永久客户端连接和多个短时间客户端连接。

© www.soinside.com 2019 - 2024. All rights reserved.