Napsal: 02 úno 2015, 21:49
ano, když tam dopíšu "test" a kliknu na tlačítko, tak se mi vrátí:
GET /?test HTTP/1.1
GET /?test HTTP/1.1
Vše, co potřebujete vědět o elektronice :-)
http://www.ebastlirna.tech/
Kód: Vybrat vše
http://192.168.0.88
Kód: Vybrat vše
GET / HTTP/1.1
Kód: Vybrat vše
<a href='http://192.168.0.88?'><button style='backgrou ...
Kód: Vybrat vše
GET /? HTTP/1.1
Kód: Vybrat vše
<a href='http://192.168.0.88/page1.htm'><button style='backgrou ...
Kód: Vybrat vše
GET /page1.htm HTTP/1.1
Kód: Vybrat vše
#include <stdio.h>
#define BUFFLEN 1024
int main(void)
{
char get[] = "GET /page1.htm HTTP/1.1 ";
char s[BUFFLEN];
sscanf(get, "GET %s HTTP", s);
printf("chci stranku %s\n", s);
if (!strcmp(s, "/page1.htm")) {
printf("poslu stranku 1\n");
} else if (!strcmp(s, "/page2.htm")) {
printf("poslu stranku 2\n");
} else {
printf("poslu defaultni stranku\n");
}
return 0;
}
Předpokádám že je to jen experimentování a nepůjde to do produkceNeodporucam robit vlastnu implementaciu HTTP servera, hlavne ked tomu nerozumies. Ak to nebude splnat patricne RFC, tak s tym budu problemy.
Kód: Vybrat vše
#include <SPI.h>
#include <Ethernet.h>
#include <stdio.h>
// zde si upravte podle sebe
byte mac[] = { 0xD4, 0xAD, 0xBE, 0xEF, 0xFE, 0x7D };
// IP adresa
IPAddress ip(192,168,0, 88);
// port
EthernetServer server(80);
#define BUFFLEN 1024
int main(void)
{
char get[] = "GET /page1.htm HTTP/1.1 ";
char s[BUFFLEN];
sscanf(get, "GET %s HTTP", s);
printf("chci stranku %s\n", s);
if (!strcmp(s, "/page1.htm")) {
printf("poslu stranku 1\n");
} else if (!strcmp(s, "/page2.htm")) {
printf("poslu stranku 2\n");
} else {
printf("poslu defaultni stranku\n");
}
return 0;
}
void setup()
{
Serial.begin(9600);
// inicalizace sítě
Ethernet.begin(mac, ip);
// inicializace serveru
server.begin();
}
void loop()
{
// když je připojen klient, zjistíme, zda jsou odeslána data
// od klienta směrem k nám
EthernetClient client = server.available();
// dokud je klient připojen
while (client.connected()) {
// čti data od něj dokud nenarazíš na znak nového řádku
if (client.available()) {
char c = client.read();
Serial.print(c);
if (c == '\n') {
// odešle klasickou hlavičku HTML stránky
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");
client.println();
client.println("<!DOCTYPE HTML>");
// zde již klasická html data
client.println("<html>");
client.println("<head>");
// Název stránky
client.println("<title>Arduinio Server</title>");
client.println("</head>");
client.println("<body>");
// vypíše text
client.println("<a href='http://192.168.0.88?page1'><button style='background:red;width:20%;height:30px'>Nova stranka</button></a>");
client.println("</body>");
client.println("</html>");
//ukončí přenos
client.stop();
}
}
}
}
Ne jak o main ale jako funkci ,je tady tlacitko code , takze kdyz upravujes kod slusi se ho sem upnout ,