如何通过我们的浏览器访问Spark核心?

角质的

我想让内核像一个Web服务器一样,在使用此命令>>>(client.println(“ Sorry”);)通过webrowser访问时显示文本,它应该在浏览器中显示“ sorry”吗?但是当我在浏览器中键入核心的IP时。它说“此网页不可用”

感谢您的阅读。

TCPServer server = TCPServer(80);
    TCPClient client;

    void setup()
    {
      // start listening for clients
      server.begin();

      // Make sure your Serial Terminal app is closed before powering your Core
      Serial.begin(9600);
      // Now open your Serial Terminal, and hit any key to continue!
      while(!Serial.available()) SPARK_WLAN_Loop();

      Serial.println(WiFi.localIP());
      Serial.println(WiFi.subnetMask());
      Serial.println(WiFi.gatewayIP());
      Serial.println(WiFi.SSID());
    }

    void loop()
    {
      if (client.connected()) {
        // echo all available bytes back to the client
        while (client.available()) {
          server.write(client.read());
          server.write("Hello world!");
          client.println("Sorry"); //<<<<<<<<<<<<<<should show this
        }
      } else {
        // if no client is yet connected, check for a new connection
        client = server.available();
      }
    }

这是我在arduino和ethernet sheild中使用的代码,可以正常工作

#include <SPI.h>
#include <Ethernet.h>

//Enter a new MAC address from your computer MAC plus one.
byte mac[] = { 0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02 };
EthernetServer server(80); // Create new server object at selected port

void setup() {

  Serial.begin(9600);
  Serial.println("Requesting ip address ...");
  Ethernet.begin(mac,ip,gateway,subnet);
  Serial.print("My IP address: ");
  Serial.print(Ethernet.localIP());
  server.begin(); // begin listening
}

void loop() {
  EthernetClient client = server.available(); // Get connection
  if(server.available()){ // check if there are connection
    Serial.println("new client connection");
    while (client.connected()) { // check if the client still alive
      if (client.available()) { // check if the connection are still alive
        char c = client.read(); // read data from Ethernet buffer
        if(c=='='){ p = client.read(); }
        Serial.write(c);
        if(c == '\n'){ // check if there are terminate character
          client.println("sorry");
          break;
        }
      }
    }
    client.stop(); // disconnect from client
    Serial.println("client disconnected");
  }
  delay(1000);
}///// credit P'O ITE
克里斯蒂安·洛里斯(Christian Loris)

浏览器不会对您所做的事情感到非常满意。您返回浏览器的所有内容都没有遵循HTTP协议规范。您应该使用telnet客户端在端口80上打开到Core IP地址的连接。然后,您将看到更接近您期望的内容。

可以使用SparkCore及其适度的功能来返回网页,但是您必须严格控制大小。要返回网页,浏览器会很满意,您可以忽略该请求并始终返回以下内容:

HTTP/1.1 200 OK
Date: Tue, 31 Mar 2015 22:38:34 GMT
Server: SparkCore
Content-Type: text/html; charset=UTF-8
Content-Length: 138
Accept-Ranges: bytes
Connection: close

<html>
<head>
  <title>An Example Page</title>
</head>
<body>
  Hello World, this is a very simple HTML document.
</body>
</html>

这是最小的HTTP响应。我尚未对其进行测试,但是非常有信心它会起作用。要了解有关HTTP以及您需要做什么的更多信息,请查看Wikipedia:

http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol

我还在community.spark.io上找到了一个很好的线程:

http://community.spark.io/t/spark-core-web-server-solved/10110/4

祝你好运!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我们如何在robotframework中一次通过不同的浏览器

我们如何使用Selenium / TestNg禁用Chrome浏览器的网络安全

我们如何打开新的浏览器窗口以预览html

我们如何记录从浏览器到电话的Twilio出站呼叫启动?

我们如何在所有浏览器中控制网页缓存?

我们如何在浏览器中缓存嵌入式SVG?

我们如何在Web浏览器中使用AWS Kinesis?

浏览器如何理解我们使用的命名空间?

我们如何在 Squish Tool 中使用 BDD 执行跨浏览器测试

JS,我们如何从浏览器打开桌面应用程序,例如Zoom或Webex

我们如何操纵浏览器表单中的元素值?

我们如何在Web浏览器控件中呈现mathjax方程?

我们如何确保深层链接将始终打开我们自己的本机应用程序,而不是打开chrome浏览器

我们如何从PC的浏览器(都连接相同的网络)向Android设备发送消息

我们如何在并行执行的同时对所有浏览器只执行一次查询

我们如何将值/参数从 android APK 传递到 React JS 浏览器。?

如何在浏览器中修复“我们无法到达此页面”错误或“ err_connection_timed_out”?

我们如何使音频在所有浏览器中都能工作,如果浏览器不支持音频,我们可以使用什么原语?

我们如何访问拦截器 preHandle HanderMethod?

为什么我们需要下载浏览器(IE,Chrome)驱动程序

我们可以在python selenium webdriver中缩放浏览器窗口吗?

我们可以使用javascript将图像推送到浏览器缓存吗

Android浏览器有时无法打开我们的网站

为什么我们的 Gmail 插件列表会导致浏览器内存不足?

我们可以让Google chrome充当仅具有一个网站访问权限的信息亭浏览器吗?

如何阻止某些网站通过浏览器访问?

如何通过浏览器访问您的终端窗口?

如何直接通过浏览器发送访问令牌

即使Internet Explorer浏览器在设置中禁用了音频,我们也可以通过Javascript编码播放音频吗?