我想让内核像一个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
浏览器不会对您所做的事情感到非常满意。您返回浏览器的所有内容都没有遵循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] 删除。
我来说两句