我想做的功能是
STM32与
手机端进行网络
通信,是经由外网的远程通信而不是使用esp8266的热点模式;
下列是我做过的一系列实验:
一、手机与STM32通信
1、如上,我使用esp8266模块进行通信,8266开启的是STA模式,连上的是我朋友的无线路由器,在路由器上有设置好端口映射(这个是我上网看到说要这样做的,我也不太清楚这样做的原因); 手机端直接用2g数据网络(也试过链接我自己的无线路由器),用的app是原子给的TCP测试工具;
stm32上设置的是TCP server,手机端用的TCP client,输入esp8266的ip地址(这个ip是上所连路由器的设置界面查的),端口统一8086, 连接一直不成功。。。。udp也一样
2、esp8266连上朋友的无线路由器,我的手机也连上同一个无线路由,试了下,成功连接并可以通信,tcp udp都行;
esp8266使用AP模式,手机直接连,毫无疑问的可以通信,tcp udp都行
二、电脑与esp8266通信
1、电脑端用的网络调试助手(电脑防火墙有关闭),电脑接的我自己的网口;8266连上朋友的无线路由器,使用TCP协议 ;电脑做server,8266做client,连接失败;电脑做client,8266做server连接失败;
2、同上,电脑与esp8266,使用udp协议,esp8266输入电脑ip,连接成功!? !!!
那个8266跟手机连同一个路由器或者直接相连可以成功通信很好理解;连上同一个路由器,路由器给分配不同的ip,相当于局域网通信(这个理解没错吧,这学期正在学计算机网络);
最后一个实验,电脑与8266连不同的网口(实际上8266连的是我朋友的wifi)使用udp,通信成功,这是经由外网进行了通信吧!那怎么TCP就不行了呢,
我在猜想是不是跟ip地址有关,使用udp,8266输入PC的ip,就连接成功了,而此时我看网络调试助手下方显示的连接方的ip地址跟stm32的显示屏上显示的8266的ip不一致?!!
网络调试助手显示的ip是8266的正确ip吗?而显示屏上面8266的ip是不对的?但是我去查了8266连的我朋友的无线路由,是跟显示屏一样的没错啊,这个是无线路由给8266分配的ip;还是说这个是无线路由给8266分配的局域网的ip而已,并不是在网络上的真正ip?
总结如下:1、我想问懂的高手们最后那个电脑与8266网络通信,调试助手上显示的才是8266正确的网络上用的ip地址吗?那我查到的路由器上面分配的ip是无线路由分配的局域网ip?相关概念好糊涂,能点拨一下吗
2、如果不是ip的问题,那是为什么我进行tcp通信就不行了呢,是其他的pc上的网络设置没有设置好?还是别的?