Forum: Mikrocontroller und Digitale Elektronik uIP-Stack: Gleichzeitig Server & Client


von Martin (Gast)


Lesenswert?

Hallo zusammen,

ich hoffe ich bin hier richtig ung ihr könnt mir helfen.
Ich habe ihr auf einem ARM Cortex-M3 den uIP-Stack am laufen.
Die Beispieldemo mit dem Webserver funktioniert auch.
Nun sollen aber mehrere Boards untereinander Daten austauschen können.
Also habe ich mir gedacht zum Webserver einen eigenen "Datenserver" auf 
einen anderen Port einzurichten und gleichzeitig auch einen Client, der 
auf einem anderen Port Daten abholen kann.
Aber irgendwie bekomme ich nicht mal hin, dass ich den Webserver und 
einen Client parallel laufen habe. Letzteres soll erstmal einen 
Verbindung zu einem anderen (Web)Server aufmachen.
Es läuft aber weder das eine, noch das andere. Einer allein hingegen 
funktioniert.
Kann mir jemand sagen, wie ich einen Client und (zwei) Server parallel 
unter uIP-Stack betreiben kann?

Vielen Dank für die Hilfe und viele Grüße
Martin

von Peter K. (Gast)


Lesenswert?

Ich kenne zwar den MicroIP-Stack nicht wirklich, aber verwendest du für 
den server und client zwei unterschiedliche Ports, weil auf einem 
Funktionierts sicher nicht.

Versteh mich bitte nicht falsch, ich will dir damit nicht unterstellen 
dass du dich nicht auskennst, sonder meistens liegen die Probleme an den 
simpelsten Sachen

von mghc (Gast)


Lesenswert?

Da gibts die uip App funktion...

dort ist zb Der empfangsport(http 80)dort definiert.

Du müsstest dort deinen Port und deine Funktion einfügen.
Senden geht ja über das uip_send


So gesehen ist der uip nicht universell genug..
Ich habe mir daraufhin einen selbst zusammen gestoppelt.
Watterott arm webradio, lwip, opentcp Usw..

Am Ende ist ein für mich ganz brauchbares Stück SW rausgekommen...

Das gute... Ich verstehe ip besser :-)

von stefanus (Gast)


Lesenswert?

Hmm, meine I/O Firmware ist gleichzeitig

- HTTP Server
- Telnet Server
- DHCP Client
- SMTP Client

Also das geht schon. Vielleicht magst Du von dem abgucken.
http://stefanfrings.de/avr_io/NET-IO-Modul.zip

von husten (Gast)


Lesenswert?

ja das meinte ich ja ...
gibt sogar 2 UIP_APPCALL funktionen

irgendwo steht das:

#define UIP_APPCALL uip_appcall
und
#define UIP_UDP_APPCALL udp_appcall


da drin sagst du auf welchen PORTs er lauschen soll

void uip_appcall(void) {
    struct application_state *app_state = (struct application_state *) 
&(uip_conn->appstate);

    switch( HTONS(uip_conn->lport) ) {
       case 80: // HTTPD
          break;

       case 123: // SNTP
          break;

       case 456: // blahh
          break;

    }
}

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.