零知WIFI教程-NETBIOS功能示例​

NETBIOS 网络基本输入/输出系统,是用于局域网通信的一套API。其作用是为了给局域网提供网络以及其他特殊功能,系统可以利用WINS服务、广播及Lmhost文件等多种模式将主机名解析为相应IP地址,实现信息通讯,所以在局域网内部使用NetBIOS协议可以方便地实现消息通信及资源的共享。我们现在在零知开源平台上进行NETBIOS功能试验。

一、软件和硬件

硬件我们本次使用零知-ESP8266;

软件使用零知开发工具,自带示例:

二、方法步骤

(1)先在零知开发工具中打开ESP_NBNST示例,或者复制下面的代码到零知开发工具中:


							
	/**********************************************************
	*    文件: x.ino      by 零知实验室([url]www.lingzhilab.com[/url])
	*    -^^- 零知开源,让电子制作变得更简单! -^^-
	*    时间: 2019/05/28 12:22
	*    说明: 
	************************************************************/
	#include <ESP8266WiFi.h>
	#include <ESP8266WebServer.h>
	#include <ESP8266NetBIOS.h>
	  
	#ifndef STASSID
	#define STASSID "ssid"
	#define STAPSK  "passwd"
	#endif
	  
	const char* ssid = STASSID;
	const char* password = STAPSK;
	  
	ESP8266WebServer wwwserver(80);
	String content;
	  
	static void handleRoot(void) {
	  content = F("<!DOCTYPE HTML>\n<html>Hello world from ESP8266");
	  content += F("<p>");
	  content += F("</html>");
	  
	  wwwserver.send(200, F("text/html"), content);
	}
	  
	void setup() {
	  Serial.begin(115200);
	  
	  // Connect to WiFi network
	  WiFi.mode(WIFI_STA);
	  WiFi.begin(ssid, password);
	  Serial.println("");
	  
	  // Wait for connection
	  while (WiFi.status() != WL_CONNECTED) {
	    delay(500);
	    Serial.print(".");
	  }
	  Serial.println("");
	  Serial.print("Connected to ");
	  Serial.println(ssid);
	  Serial.print("IP address: ");
	  Serial.println(WiFi.localIP());
	  
	  
	  wwwserver.on("/", handleRoot);
	  wwwserver.begin();
	  
	  NBNS.begin("ESP");
	}
	  
	void loop() {
	  wwwserver.handleClient();
	}
							
						

(2)验证上述代码并上传到零知-ESP8266开发板;

(3)我们打开零知开发工具的串口调试窗口,可以看到如下信息:

(4)我们先用PING工具测下,可以看到IP和主机名都能成功通信:

现在我们在浏览器打开 http://ESP ,可以看到如下信息:

这和直接访问IP地址是一样的: