9869|3

11

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

【esp8266 micropython】之五 UDP教程 [复制链接]

 
本帖最后由 Chocho 于 2017-3-13 09:43 编辑

micropython udp on esp8266
TCP是建立可靠连接,并且通信双方都可以以流的形式发送数据,相对TCP,UDP则是面向无连接的协议,使用UDP协议时,不需要建立连接,只需要知道对方的IP地址和端口号,就可以直接发数据包。
这里我们会用到串口/网络调试助手, 下载地址:http://www.daxia.com/sscom/sscom5.12.1.rar
程序如下:
  1. import socket
  2. port = 10086
  3. s=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  4. s.bind(('192.168.0.110',port))  #绑定端口
  5. print('waiting...')
  6. while True:         #接收数据
  7.         data,addr=s.recvfrom(1024)
  8.         print('received:',data,'from',addr)
复制代码
将烧录了micropython的esp8266连接到PC,用之前几篇教程的方法打开我们的putty终端,在我们做udp之前呢,我们必须先做一些必须准备工作,首先我们的让esp8266连接上无线网络,这样我们才能得到我们需要的ip地址。
我们在终端中输入以下命令,直到esp8266连接wifi成功,我们可以用wlan.isconnected来检查是否连接网络成功,wlan.scan()用来扫描附近可连接的无线网,用wlan.connect(‘ssid’,’password’)来连接我们的无线网(ssid:自己的wifi名称,password:无线网密码),
     
    在我们输入连接wifi的命令后,出现如下图所示的情况,则表示连接wifi成功,同时我们也能看到我们需要的ip地址也有了,记住这个ip地址,在之后的udpserver的程序中,我们会用到。
   
    用之前几篇教程的方法将我们的程序弄到终端里运行,正确的运行结果如下图:
   
    这个时候我们把下载好的串口调试助手打开,整体界面如下图,这个时候我们之前记录的ip地址就可以派上用场了,在我们的端口号选择udp,在远程哪里输入记录的ip地址,在远程后面的端口,填入我们程序中的端口号就可以了。
   
    然后点击连接,出现如下情况,则表明连接成功,在最下面一行可以看到是否连接成功。
   
    在发送按钮旁边的空白框中输入:nihao.  然后点击发送,然后会在putty终端中接收到刚发送的信息和发送的地址,如下图:




此内容由EEWORLD论坛网友Chocho原创,如需转载或用于商业用途需征得作者同意并注明出处
    这样我们的udp连接、接收发送信息就完成了。

    还有一种直接的方法来实现我们的功能,代码如下:
   
  1. import network[/align]import socket
  2. import time
  3. port=10086
  4. wlan = network.WLAN(network.STA_IF)
  5. wlan.active(True)
  6. wlan.connect('dfyanfa', 'df123456')
  7. while(wlan.isconnected() == False):
  8.             time.sleep(1)
  9. ip = wlan.ifconfig()[0]
  10. print(ip)
  11. s=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  12. s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)  
  13. s.bind((ip,port))
  14. print('waiting....')
  15. while True:
  16.             data,addr=s.recvfrom(1024)
  17.             s.sendto(data,addr)
  18.             print('received:',data,'from',addr)
复制代码

     将上面的代码直接输入就可以了,然后用串口/网络调试助手做为UDP客户端去和服务器建立连接,操作方法和上面的是一样的,有兴趣或者为了方便的可以去试一下。

6.png (18.72 KB, 下载次数: 1)

6.png

最新回复

socket是不是只对UDP协议,不对TCP协议呀   详情 回复 发表于 2020-12-26 14:15
点赞 关注(1)
 
 

回复
举报

20

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
UDP挺长用的,自己的基本功没打好
个人签名小店 https://shop226970498.taobao.com/
主营 Esp8266初级教程、源码等,适用于菜鸟
 
 
 

回复

9

帖子

0

TA的资源

禁止发言

板凳
 
学习了
个人签名ESP32模块 ESP8266模块一站式物联网解决方案、系统解决方案、云平台支持。全球最高性价比15986635722 刘R
 
 
 

回复

189

帖子

0

TA的资源

一粒金砂(中级)

4
 

socket是不是只对UDP协议,不对TCP协议呀

个人签名单片机软件/硬件交流群:127034610
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表