INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
kann "localhost" nicht connecten
20.06.2016, 16:42
Beitrag #1
kann "localhost" nicht connecten
Hallo Arduino-Kollegen,
mit dem unten gelisteten, relativ einfachen Sketch, gelingt es mir nicht, einen Connect zu "localhost" herzustellen. Wenn ich als Server "www.google.com" einsetze, funktioniert es.
Ich habe mit dem XAMMP-Paket den Apache-Server installiert. Windows(10)-Firewall ist ausgeschaltet. Avira-Firewall ist auch ausgeschaltet.
Router ist Speedport W724, DHCP eingeschaltet. Die hier im Sketch voreingestellte IP wird jedoch vom Router als Geräte-IP übernommen.
Wo könnte das Problem liegen?

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

byte mac[] = { 0xD4, 0x28, 0xB2, 0xFF, 0xA0, 0xA1 };
IPAddress ip(192,168,2,199);
char server[]="localhost";

EthernetClient client;

void setup() {
Serial.begin(9600);
Ethernet.begin(mac,ip);
}

void loop() {
  Serial.println();
  Serial.println("Loop beginnt");

if (client.connect(server,80)) {
   Serial.println ("connected");
}
   else {
   Serial.println("keine Verbindung");
}
client.stop();
delay (5000);
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.06.2016, 17:00
Beitrag #2
RE: kann "localhost" nicht connecten
Ich vermute mal, dass die IP im Sketch die des Arduino ist.

Localhost ist immer der anfragende Rechner selbst, wenn der eine Namensauflösung macht. Das entspricht der IP 127.0.0.1

Du kannst also Deinen PC nur vom PC aus als localhost ansprechen. Vor Arduino aus musst Du die IP des PC nehmen, da ich vermute, Du hast keinen eigenen Nameserver in Deinem Heimnetz laufen.

Code:
byte server = {192,168,2,111}; // Die IP Deines PC - anpassen

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.06.2016, 17:23
Beitrag #3
RE: kann "localhost" nicht connecten
(20.06.2016 17:00)Tommy56 schrieb:  Ich vermute mal, dass die IP im Sketch die des Arduino ist.

Localhost ist immer der anfragende Rechner selbst, wenn der eine Namensauflösung macht. Das entspricht der IP 127.0.0.1

Du kannst also Deinen PC nur vom PC aus als localhost ansprechen. Vor Arduino aus musst Du die IP des PC nehmen, da ich vermute, Du hast keinen eigenen Nameserver in Deinem Heimnetz laufen.

Code:
byte server = {192,168,2,111}; // Die IP Deines PC - anpassen

Gruß Tommy

Danke Tommy, für die schnelle Antwort.
Die im Arduino-Sketch mit "IPAddress ip(192,168,2,199);" definierte IP, ist die softwaremäßig dem Arduino zugeordnete IP. Diese wird ein paar Zeilen später mit "Ethernet.begin(mac,ip);" an den Router übergeben. Der Router übernimmt diese auch, obwohl er ansonsten auf DHCP eingestellt ist. Das habe ich in der Routerkonfiguration überprüft.
"Localhost" ist doch der Apache-Server auf meinem PC, den ich im Sketch mit "if (client.connect(server,80)) " anspreche. Wie ich gelesen habe, müsste "localhost" automatisch in die IP Adresse aufgelöst werden.
Ich kann leider nicht richtig verstehen, was du gemeint hast.

Was mir gerade einfällt: "müsste der Apache-Server nicht als "angeschlossenes Gerät" mit IP-Adresse im Router aufgeführt sein? Ist aber nicht.

Gruß - Uli
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.06.2016, 19:19
Beitrag #4
RE: kann "localhost" nicht connecten
(20.06.2016 17:23)sowerum schrieb:  "Localhost" ist doch der Apache-Server auf meinem PC, den ich im Sketch mit "if (client.connect(server,80)) " anspreche. Wie ich gelesen habe, müsste "localhost" automatisch in die IP Adresse aufgelöst werden.
Ich kann leider nicht richtig verstehen, was du gemeint hast.

Was mir gerade einfällt: "müsste der Apache-Server nicht als "angeschlossenes Gerät" mit IP-Adresse im Router aufgeführt sein? Ist aber nicht.

Gruß - Uli
Da hast Du wohl was falsches gelesen / verstanden.

Der PC ist nur dann localhost, wenn er von sich selbst aufgerufen wird, d.h. seine Netzwerkfunktionalität bindet ihn sowohl an seine "richtige" IP-Adresse (192.168.0.xxx), als auch an die lokale IP 127.0.0.1, in die er selbst localhost auflöst.
Der Name beinhaltet es bereits: der lokale Host

Wenn Du z.B. zwei PC in Deinenm Netzwerk hast, sind die jeweils beide für sich selbst localhost, für den anderen aber 192.168.0.xxx und 192.168.0.yyy.
127.0.0.1 verläßt nie die eigene Hardware des Aufrufers.

Wieso sollte der Apache-Server im Router aufgeführt sein? Er ist nur ein Programm auf dem PC und der PC wird im Router angezeigt.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.06.2016, 20:57
Beitrag #5
RE: kann "localhost" nicht connecten
(20.06.2016 19:19)Tommy56 schrieb:  
(20.06.2016 17:23)sowerum schrieb:  "Localhost" ist doch der Apache-Server auf meinem PC, den ich im Sketch mit "if (client.connect(server,80)) " anspreche. Wie ich gelesen habe, müsste "localhost" automatisch in die IP Adresse aufgelöst werden.
Ich kann leider nicht richtig verstehen, was du gemeint hast.

Was mir gerade einfällt: "müsste der Apache-Server nicht als "angeschlossenes Gerät" mit IP-Adresse im Router aufgeführt sein? Ist aber nicht.

Gruß - Uli
Da hast Du wohl was falsches gelesen / verstanden.

Der PC ist nur dann localhost, wenn er von sich selbst aufgerufen wird, d.h. seine Netzwerkfunktionalität bindet ihn sowohl an seine "richtige" IP-Adresse (192.168.0.xxx), als auch an die lokale IP 127.0.0.1, in die er selbst localhost auflöst.
Der Name beinhaltet es bereits: der lokale Host

Wenn Du z.B. zwei PC in Deinenm Netzwerk hast, sind die jeweils beide für sich selbst localhost, für den anderen aber 192.168.0.xxx und 192.168.0.yyy.
127.0.0.1 verläßt nie die eigene Hardware des Aufrufers.

Wieso sollte der Apache-Server im Router aufgeführt sein? Er ist nur ein Programm auf dem PC und der PC wird im Router angezeigt.

Gruß Tommy

o.k., jetzt läuft's. Da hatte ich etwas ziemlich falsch verstanden.
Danke!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Frage zu STM32F1xx / Was kann ich bei dieser Fehlermeldung machen? Holzwurm56 37 1.371 04.09.2017 14:14
Letzter Beitrag: Holzwurm56
  NeoPixels: Sketch will nicht - Problem mit delay? Zabsi 5 313 22.08.2017 15:17
Letzter Beitrag: Tommy56
  Kann man auf den internen Speicher zugreifen? Maxi290997 11 692 18.08.2017 19:51
Letzter Beitrag: hotsystems
  BME280 - Luftdruckoffset nicht einstellbar ? Stargazer 17 972 13.08.2017 15:38
Letzter Beitrag: hotsystems
  Ich komme mit millis nicht weiter !!! Gonmaus 8 720 09.07.2017 21:24
Letzter Beitrag: Tommy56
  WEMOS Motorshield funzt nicht Rumpl-X 8 543 07.06.2017 21:10
Letzter Beitrag: Tommy56
  LCD geht nicht - keine Ahnung warum?? DL1AKP 12 814 15.05.2017 13:17
Letzter Beitrag: DL1AKP
  433mHz Funkmodule senden/empfangen nicht metzgefa 2 713 06.05.2017 13:30
Letzter Beitrag: metzgefa
  SD Karte wird nicht erkannt Maxi290997 6 420 31.03.2017 06:05
Letzter Beitrag: Bitklopfer
Sad Sketch funktioniert auf dem Mega 2560 nicht Frank1234 16 1.103 26.03.2017 14:15
Letzter Beitrag: oOSpikeOo

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste