Forum: Mikrocontroller und Digitale Elektronik enc28J60 ethernet daten per ping senden


von Karl K. (leluno)


Lesenswert?

ich habe den Menke/Radig-Webserver zum Laufen gebracht.

Ich möchte jetzt möglichst einfach Daten im Netz versenden. In der 
main.c
ist eine Abfrage
1
  
2
        if(ping.result)
3
        {
4
            usart_write("Get PONG: %i.%i.%i.%i\r\n",ping.ip1[0],ping.ip1[1],ping.ip1[2],ping.ip1[3]); 
5
            ping.result = 0;
6
        }

vier byte Daten würden für meine Übertragung völlig ausreichen. Der 
Ping-befehl funktioniert. Kann ich bei Ping die zu übertragenden Daten 
irgendwie vorgeben, so dass sie vom avr ausgewertet werden können?

Wenn nein, gibt es ein ähnlich einfaches Verfahren zur Übertragung von 
Daten im Netzwerk wie ping?

von Georg G. (df2au)


Lesenswert?

karl k. schrieb:
> Wenn nein, gibt es ein ähnlich einfaches Verfahren zur Übertragung von
> Daten im Netzwerk wie ping?

Dazu müsstest du das Ping in dem sendenden Rechner umbauen. Vergiss es 
besser. Das Stichwort ist "UDP", wenig Overhead, schnell gemacht.

von c-hater (Gast)


Lesenswert?

karl k. schrieb:

> vier byte Daten würden für meine Übertragung völlig ausreichen. Der
> Ping-befehl funktioniert. Kann ich bei Ping die zu übertragenden Daten
> irgendwie vorgeben, so dass sie vom avr ausgewertet werden können?

Ja, könnte man. Aber es ist nicht schön, Protokolle zweckentfremdet zu 
verwenden. Das macht man, wenn überhaupt, nur in sehr gut begründeten 
Ausnahmefällen.

Krasse Unfähigkeit des Programmierers ist definitiv keine hinreichende 
Indikation...

>  Wenn nein, gibt es ein ähnlich einfaches Verfahren zur Übertragung von
> Daten im Netzwerk wie ping?

Natürlich: UDP. Das unterliegt denselben Einschränkungen wie ICMP 
("ping" ist ein Teil von ICMP), definiert aber ausdrücklich den Payload 
als solchen, d.h. als vom Protokollbenutzer zum Transport beliebiger 
Daten einsetzbar.

UDP ist von der Implementierung her sogar einfacher als ICMP, weil die 
zwar der "Port" als Konzept hinzukommt, dafür aber die Implementierung 
der vielen verschiedenen ICMP-Messages wegfällt, denn bei UDP gibt's nur 
eine einzige: DATA.

von Karl K. (leluno)


Lesenswert?

danke für die Antworten

googeln nach udp Radig Webserver bringt:
>Hallo,
>es muß einfach UDP gesendet werden an die andere IP und den richtigen Port.
>Der Empfänger muß den Port geöffnet haben. Dazu kann man sich die Routine 
>udp_lcd umstricken.
>Gruß
>Uli


also vom Meister selber.

Freche Frage: Gibts die für UDP umgestrickte udp_lcd schon fertig?

von Karl K. (leluno)


Lesenswert?

Es gibt die Funktion
>dhcp_message<
mit der man offenbar udp-packets versenden kann


Hat jemand einen link auf eine Beispielanwendung?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.