在 Arduino 中使用以太网屏蔽连接到服务器
Connecting to a server with the ehternet shield in Arduino
我正在开发一个简单的代码,允许我连接到我的 LAN 中的服务器。但它不起作用,它不连接。
我试图让它以各种方式工作,但无论哪种方式都不起作用。
这是我的代码:
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0x90, 0xA2, 0xDA, 0x11, 0x03, 0xE9 };
char server[] = "http://172.17.17.55";
IPAddress ip(172, 17, 17, 60);
EthernetClient client;
void setup() {
Serial.begin(9600);
while (!Serial) {
;
}
Ethernet.begin(mac, ip);
delay(1000);
Serial.println("connecting...");
if (client.connect(server, 8008)) {
Serial.println("connected");
client.println("GET /172.17.17.55/ HTTP/1.1");
client.println();
} else {
Serial.println("connection failed");
}
}
void loop() {
if (client.available()) {
char c = client.read();
Serial.print(c);
}
if (!client.connected()) {
Serial.println();
Serial.println("disconnecting.");
client.stop();
while (true);
}
}
您需要从您的服务器地址中删除 http://
:
char server[] = "172.17.17.55";
或者更好,因为你知道 IP 地址,所以你可以使用:
IPAddress server(172, 17, 17, 55);
这将避免 DNS 查找。
我正在开发一个简单的代码,允许我连接到我的 LAN 中的服务器。但它不起作用,它不连接。 我试图让它以各种方式工作,但无论哪种方式都不起作用。
这是我的代码:
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0x90, 0xA2, 0xDA, 0x11, 0x03, 0xE9 };
char server[] = "http://172.17.17.55";
IPAddress ip(172, 17, 17, 60);
EthernetClient client;
void setup() {
Serial.begin(9600);
while (!Serial) {
;
}
Ethernet.begin(mac, ip);
delay(1000);
Serial.println("connecting...");
if (client.connect(server, 8008)) {
Serial.println("connected");
client.println("GET /172.17.17.55/ HTTP/1.1");
client.println();
} else {
Serial.println("connection failed");
}
}
void loop() {
if (client.available()) {
char c = client.read();
Serial.print(c);
}
if (!client.connected()) {
Serial.println();
Serial.println("disconnecting.");
client.stop();
while (true);
}
}
您需要从您的服务器地址中删除 http://
:
char server[] = "172.17.17.55";
或者更好,因为你知道 IP 地址,所以你可以使用:
IPAddress server(172, 17, 17, 55);
这将避免 DNS 查找。