Esp8266-server comminication

时间:2018-06-13 05:47:35

标签: c# mysql asp.net webserver

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.");

        }
    }

0 个答案:

没有答案