Forum: FPGA, VHDL & Co. manipulate the payload of lwIP


von Jan S. (spongebob)


Lesenswert?

Moin!!!
Ich habe mit SDK13.4 den Echoserver implementiert. In der recv_callback 
funktion wird das Payload ja "geechoed".
Ich dachte mir das man ja eigentlich ganz einfach das Payload 
manipulieren können muss.
Mein Problem ist, das der Pointer auf das Payload ja ein void-Pointer 
ist und es immer wenn ich etwas schreiben möchte entweder zu Fehlern 
wegen inkompatiblen typen kommt, oder das es einfach nicht funktioniert.
Dann versuche ich (wenn´s keine Fehler gibt) mit Telnet etwas an das 
Board zu senden und erwarte dann den manipulierten Wert als echo.
Etwa so: sende a empfange x, sende b, empfange x...
Leider komme ich mit debuggen auch nicht weiter und außer telnet fällt 
mir auch nicht viel ein, was das Payload zurückgeben kann.

Bin für jeden Tipp dankbar. Werde sonst noch verrückt...
Grüße Jan

von asdf (Gast)


Lesenswert?

Pointer casten?

von Jan S. (spongebob)


Lesenswert?

hab schon alles mögliche versucht:

char my_var = 'j';

dann:

p->payload = (char)my_var;
assignment makes pointer from integer without a cast

p->payload = (char *)my_var;
cast to pointer from integer of different size

(&p).payload = &my_var;
request for member 'payload' in something not a structure or union

p.payload = &my_var;
request for member 'payload' in something not a structure or union

p->payload = my_var;
assignment makes pointer from integer without a cast

Ich weiß echt nicht was da abgeht...

von Jan S. (spongebob)


Lesenswert?

jetzt habe ich es geschafft.
Die richtige Anweisung ist:

p->payload = (char *)&my_var;

Jetzt muss ich nur noch herausfinden wieso das funktioniert. Dachte die 
Anweisung p->payload ist eine Dereferenzierung also beinhaltet einen 
wert und keine Adresse.

von i2c (Gast)


Lesenswert?

Jan S. schrieb:
> jetzt habe ich es geschafft.
> Die richtige Anweisung ist:
>
> p->payload = (char *)&my_var;
>
> Jetzt muss ich nur noch herausfinden wieso das funktioniert. Dachte die
> Anweisung p->payload ist eine Dereferenzierung also beinhaltet einen
> wert und keine Adresse.

Ne, Moment. p ist ein Pointer und DER wird dereferenziert, was in 
payload drin ist ist eine ganz andere Sache.

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.