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
Web Server, Client, abbruch?
09.07.2015, 23:16
Beitrag #1
Web Server, Client, abbruch?
Hey Leute,

evtl. kann mir hier ja jemand von euch weiterhelfen.

Es geht um einen Webserver.

wenn ich zb. über ein Terminalprogramm auf die entsprechende IP Adresse zugreife ( Putty über TCP) dann kann ich den GPIO 1 x entweder an oder ausschalten. jedoch danach kommt: im Terminal der IDE : "Client disonnected".


Ich wollte aber das ich den Ausgang solange ich eine aktive Verbindung ( terminal offen) habe so oft ich möchte "EIN / AUS" schalten kann, und erst dann "client disonnected" kommt wenn von meiner Seite aus auch keine aktive Verbindung mehr besteht ( terminal geschlossen) .

Was mache ich da falsch?

Hier der ausschnitt aus dem code um den es geht:

Code:
void loop() {
  // Check if a client has connected
  WiFiClient client = server.available();
  if (!client) {
    return;
  }
  
  // Wait until the client sends some data
  Serial.println("new client");
  while(!client.available()){
    delay(1);
  }
  
  // Read the first line of the request
  String req = client.readStringUntil('\r');
  Serial.println(req);
  client.flush();
  
  // Match the request
  int val;
  if (req.indexOf("2on") != -1)
    val = 0;
  else if (req.indexOf("2off") != -1)
    val = 1;
  else {
    Serial.println("invalid request");
    client.stop();
    return;
  }

  
  digitalWrite(2, val);
  
  client.flush();

  // Prepare the response
  String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\nGPIO is now ";
  s += (val)?"high":"low";
  s += "</html>\n";

  // Send the response to the client
  client.print(s);
  delay(1);
  Serial.println("Client disonnected");

  // The client will actually be disconnected
  // when the function returns and 'client' object is detroyed
}

Gruß Marc

Shy
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.07.2015, 08:58
Beitrag #2
RE: Web Server, Client, abbruch?
Hallo Marc,
Zitat:Ich wollte aber das ich den Ausgang solange ich eine aktive Verbindung ( terminal offen) habe so oft ich möchte "EIN / AUS" schalten kann, und erst dann "client disonnected" kommt wenn von meiner Seite aus auch keine aktive Verbindung mehr besteht ( terminal geschlossen) .
Ich glaube da hast du ein Verständnisproblem bzw. nutzt du die falsche Testmethode für einen Webserver.

Putty etabliert über TCP eine dauerhafte Verbindung mittels Verwaltung der Quell-/Ziel-Adresse der Datenpakete. Damit werden nach Aufbau der Verbindung alle Informationen als zu dieser Verbindung gehörend betrachtet. Dies solange bis die "Aufforderung" zum Beenden der Verbindung kommt.

HTTP (Webserver) ist jedoch ein sogenanntes "zustandsloses Protokoll". Das heißt alle Anfragen an den Server (auch vom gleichen Client) werden als voneinander völlig unabhängig angesehen, abgearbeitet und nach Erledigung als abgeschlossen betrachtet. Es gibt grundsätzlich keine Sessionverwaltung, es sei denn du benutzt so etwas wie Session-IDs.

Von daher denke ich, dass der Webserver durchaus funktioniert (ohne in den Code zu gucken), jedoch putty das falsche Testverfahren ist.

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.07.2015, 09:21
Beitrag #3
RE: Web Server, Client, abbruch?
Ja er geht das stimmt Wink

ich wollte jedoch nicht über die Suchzeile die GPIO s steuern sondern ein Terminalprogramm ( deswegen Putty) oder Xterm und co. aber das ist ja unpraktisch wenn ich nach jedem Befehl das Terminal neutralen muss :/

Gruß Marc

Shy
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.07.2015, 18:12
Beitrag #4
RE: Web Server, Client, abbruch?
Gibt es keine Möglichkeit die Verbindung nicht zu stoppen? Ich muss so ja nach jedem Befehl die Verbindung Neustarten?!

Gruß Marc

Shy
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  ESP8266 Server connect sowerum 1 169 21.10.2016 19:10
Letzter Beitrag: sowerum
  Proxy Server umgehen bzw. einpflegen Caldorsa 13 296 15.10.2016 22:35
Letzter Beitrag: Caldorsa
Question Webserver, Client, Loop Marc2014 6 369 29.07.2016 21:04
Letzter Beitrag: Marc2014
  html, client , NODEMCULUA, Wifi, match request , Frage Marc2014 2 364 15.02.2016 18:41
Letzter Beitrag: Marc2014
  Code Server oder Client seitig?? SchwesterStefan 3 569 09.11.2015 22:47
Letzter Beitrag: hotsystems
  Problem mit der Ethernet Library (client.connect) ardu_arne 3 652 06.10.2015 17:06
Letzter Beitrag: ardu_arne
  Status einer if / else Verknüpfung per client.print ausgeben daruel 8 1.139 20.08.2015 10:11
Letzter Beitrag: daruel
  WiFi-Shield connect to Server(C#) klappt nicht Jannis 0 814 29.04.2015 09:22
Letzter Beitrag: Jannis
  DHCP Server mit Nano und Ether_28J60 Frederick4711 5 936 16.03.2015 13:46
Letzter Beitrag: Frederick4711
  Ethernet Shield Client kiroho 22 5.987 09.05.2014 11:43
Letzter Beitrag: Hilgi

Gehe zu:


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