manipulate the payload of lwIP

OP #2660201
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
OP #2660378
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...
Gast #2660430
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren