Hallo zusammen, mit lwIP 1.4.0 läuft bei mir bereits telnet und ICMP erfolgreich. Leider funktioniert http nicht, der server scheint keine Daten zu senden. Testaufbau: while(1) mit - netif->input bei empfangenen Paketen - tcp_tmr alle 250 ms - etharp-tmr alle 5 s - primitiver raw httpd nach dem Beispiel von www.sics.se/~adam/lwip/doc/lwip.pdf - Firefox 10 ohne Firewall Scheinbar läuft alles gut, bis ich mit tcp_write(pcb, indexdata, counter, 0 <oder 1, keine Besserung>) meine Daten gesendet habe. Die Daten werden wohl nie wirklich versendet. Hat jemand von euch eine Idee, was ich falsch mache? Danke Bernhard --> log > gebe die IP-Adresse des Servers in die Adresszeile ein tcp_input: packed for LISTENing connection. TCP connection request 50371 -> 80. tcp_parseopt: MSS tcp_parseopt: NOP tcp_parseopt: other tcp_parseopt: NOP tcp_parseopt: NOP tcp_parseopt: other +-+-+-+-+-+-+-+-+-+-+-+-+-+- tcp_input: flags ACK -+-+-+-+-+-+-+-+-+-+-+-+-+-+ State: SYN_RCVD > Aufruf http_accept() tcp_receive: window update 64240 tcp_receive: ACK for 6527, unacked->seqno 6526:6527 tcp_receive: removing 6526:6527 from pcb->unacked State: ESTABLISHED +-+-+-+-+-+-+-+-+-+-+-+-+-+- tcp_input: flags PSH ACK -+-+-+-+-+-+-+-+-+-+-+-+-+-+ State: ESTABLISHED > Aufruf http_recv() tcp_close: closing in State: ESTABLISHED CENC28J60::Output tcp_pcb_purge tcp_pcb_purge: not all data sent State: TIME_WAIT ... und ab dann immer nur tcp_slowtmr: no active pcbs
Hallo zusammen, mittlerweile ist das Problem gelöst. Lösung: die in den minimalistischen Beispielen verwendeten html-Seiten (als char-array im Code selbst sind veraltet. Viele Grüße Bernhard
Gast
#2661029
Hallo Bernhard tcp_write() schreibt normal nur in einen Buffer, der dann mit tcp_tmr abgearbeitet wird. Mit tcp_output() kann man das Senden direkt erzwingen. Schöne Grüsse Sandro
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.