После того, как я сделал это, я забыл о том, что спросил это здесь, но вот как я это сделал, понятия не имел, что было не так раньше.
Конечно, обязательно отключите брандмауэр, поэтому для систем на основе Debian:
sudo ufw disable
sudo ufw reload
Затем я испортил код, пока мне не удалось выполнить запрос POST, я знаю, что запросил GET, но ошибка, упомянутая в вопросе, теперь исчезла (я заметил, что порт изменился, но это потому что я тоже изменил его на сервере, прежде чем заставить его работать):
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress server(192,168,1,100);
IPAddress ip(192,168,1,104);
IPAddress gateway(192,168,1,1);
IPAddress DNSServer(192,168,1,1);
IPAddress subnet(255, 255, 255, 0);
EthernetClient client;
void setup() {
Serial.begin(9600);
Ethernet.begin(mac, ip, gateway, DNSServer, subnet);
delay(5000);
Serial.println("connecting...");
}
void loop()
{
int correctValue;
String PostData = "foo";
if (client.available()) {
char c = client.read();
Serial.print(c);
}
if (!client.connected()) {
Serial.println();
Serial.println("disconnecting.");
client.stop();
if (client.connect(server, 5000)) {
Serial.println("connected");
client.println("POST / HTTP/1.1");
// Works either with or without any of the commented lines
// guess it's a great idea to un-comment them though
//client.println("Host: 192.168.1.100");
//client.println("User-Agent: Arduino/1.0");
//client.println("Connection: close");
client.print("Content-Length: ");
client.println(PostData.length());
client.println();
client.println(PostData);
client.println();
}
else {
Serial.println("connection failed");
}
delay(10000);
}
}
Если вы хотите получить GET, ЭТО ДОЛЖНО изменить клиента
. println ("POST / HTTP / 1.1");
с
client.println ("GET / HTTP / 1.1");
затем удалите все client.println (), блок с
if (client.available()) {
char c = client.read();
Serial.print(c);
}
должен выполнить работу по его печати, так как я не уверен в этом и не могу подтвердить это, я буду более чем рад обновить код, если кто-то узнает правильный способ сделать это