Espressif ESP32 TCP/IP
怎么今天说到他呢?原因是工作啦。最新的一个任务就是Enhance之前人做的result。刚好,之前那位用了TCP/IP ( Transmission Control Protocol/Internet Protocol) communication protocol. 当我一听到这个的时候,我心想,啊!这个!我懂名字而已哈哈。概念是什么我也不清楚。战战兢兢的找了一些影片来看,想说就换个IP (Internet Protocol) address就好吧。
怎知,看到之前的人做的代码,我蒙了,怎么需要MAC address, DNS server, Default Gateway? 脑里一堆问号。当然这些Terms对我来说并不陌生,我认识他们但不是很明白他们。自己研究尝试了整个上午,发现不行了,我需要向人求救了。果然同事Senior就是厉害,他问我“你有学过Networking?”, 我弱弱回复“有,不过很久很久之前的事情了”。当时的我觉得好羞耻,对不起我把大学的面子给毁掉了哈哈哈哈。(PS:这真的不是我的强项,我会继续加油的,哈哈。 顿时想当一只鸵鸟,把头往土里埋,多好。)PPS:你们就继续笑我吧,咳咳。
最后发现是自己把自己给搞乱了。原理很简单,我也和大家简单介绍吧。Device和Device之间要讲话/交换讯息需要通过一个Server嘛。所以,要怎样和Server沟通?
我们需要地址,地址就是IP address。可是这地址是个公寓有很多间家,所以我们需要门牌号。我们的门牌号就是 Port Number 啦。而MAC address 也被称为Physical address 就是所谓的身份证号码,是独特的Unique的。
根据以上的情况:
- Server --- Espressif ESP32 (A micro-controller)
- PortNumber --- 111(自己给他一个号码吧,一共有3类Port ,有机会我再另外做个笔记😛)
- IP Address --- 192.168.66.100 (先连接LAN Cable,在 CMD 打 ipconfig 或者ipconfig /all, 看Ethernet 的 ipv4 (192.168.66.153), 给一个ipv4 呗,记得不可以和你电脑的一样哦)
- MAC address --- 也应该是unique的,厂商在制造的时候应该也会assign给那个hardware了,你的手机电脑等都有哦
#include <SPI.h>
#include <Ethernet.h>
// the media access control (ethernet hardware) address for the shield:
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
//the IP address for the shield: byte ip[] = { 192,168,66,100 };
EthernetServer server = EthernetServer(111);
void setup()
{
Ethernet.begin(mac, ip);
}
void loop ()
{
// if an incoming client connects, there will be bytes available to read:
EthernetClient client = server.available();
if (client == true)
{
// read bytes from the incoming client and write them back
// to any clients connected to the server:
server.write(client.read());
}
}
Comments
Post a Comment