Esp8266正在使用AT + Commands。所以我试图创建一个非常简单的服务器来与之通信。 我的第一个问题是,我可以创建一个数据库作为Web服务器吗?和esp8266直接通过查询与我的数据库进行通信?让我们说我将使用mySql。 第二个问题,如果我需要首先使用c#与Web服务器进行通信,我如何在我的电脑中创建可以接收和发送请求的本地服务器?
以下是我从esp8266
发送的内容的示例AT+CIPSEND=4,46\r\n
AT+CIPMUX=1\r\n
AT+CIPSTART=4,"TCP","192.168.0.214",5000\r\n
GET / HTTP/1.1\r\nHost: http://localhost:5000/\r\n
AT+CIPCLOSE=4\r\n
我不知道如何从这开始。我在论坛上提问,因为我试图找到一种简单的方法来做到这一点。
我也找到了这个例子。但是我如何将它结合起来发送请求和回答客户?
static void Main(string[] args)
{
Console.WriteLine("Starting server...");
_httpListener.Prefixes.Add("http://localhost:5000/"); // add prefix "http://localhost:5000/"
_httpListener.Start(); // start server (Run application as Administrator!)
Console.WriteLine("Server started.");
Thread _responseThread = new Thread(ResponseThread);
_responseThread.Start(); // start the response thread
}
static void ResponseThread()
{
while (true)
{
HttpListenerContext context = _httpListener.GetContext(); // get a context
// Now, you'll find the request URL in context.Request.Url
byte[] _responseArray = Encoding.UTF8.GetBytes("<html><head><title>Localhost server -- port 5000</title></head>" +
"<body>Welcome to the <strong>Localhost server</strong> -- <em>port 5000!</em></body></html>"); // get the bytes to response
context.Response.OutputStream.Write(_responseArray, 0, _responseArray.Length); // write bytes to the output stream
context.Response.KeepAlive = false; // set the KeepAlive bool to false
context.Response.Close(); // close the connection
Console.WriteLine("Respone given to a request.");
}
}