【发布时间】:2020-01-10 13:22:06
【问题描述】:
我进行了很多搜索,但无法弄清楚如何解决我的问题。我有一个 esp8266 12E 配置为通过 TCP/IP 接收消息,如果发送的消息具有正确的密码,则激活一扇门。我有以下代码:
system ("netcat 192.168.4.1 555");
在终端上执行后 netcat 是打开的,但我无法弄清楚如何让我的程序自动写入密码。试过了:
system ("netcat 192.168.4.1 555");
printf("key");
调用 netcat 命令后无法写东西。而我的程序发送key之后需要关闭netcat,怎么办?
我希望我能用英语解释自己,并且很高兴得到帮助来解决这个简单的问题。
*我正在使用 linux 进行编码,我的应用程序将在树莓派上运行。
【问题讨论】:
-
我不确定我是否正确理解了您的问题,但您可以使用
echo命令直接将您的消息发送给netcat:system("echo \"key\" | netcat 192.168.4.1 555") -
嗨@Storm,感谢您的评论。我正在考虑让用户点击“连接”按钮并保持与门的连接,然后当有人到达时,当微控制器收到我的应用消息时,门会自动打开。
-
那么您最好在代码中实现自己的 TCP 客户端,而不是尝试将其全部通过管道传递给 netcat。
-
尝试添加选项
-q 0以强制netcat在传输结束后关闭 -
@Storm ,了解。我已经尝试过你之前所说的。 [code]system("echo \"key\" | netcat 192.168.4.1 555")[/code] 即使这样,netcat在发送消息后仍然打开,无法终止程序。
标签: c linux tcp esp8266 netcat