Andre_Java
Mitglied
Ich empfange Datenpakete mit der Funktion recvfrom und speichere die Nutzdaten in "buffer". Wenn ich mit einem c-Programm selber ASCII-Zeichen sende funktioniert auch alles und der Inhalt kann mit printf aus "buffer" ausgegeben werden. Sobald ich andere Datenpakete empfange, die auch ASCII Steuerzeichen enthalten, bleibt die Ausgabe allerdings immer leer, obwohl in "numbytes" die richtige Länge steht.
Wie kann ich verhindern, dass aus "buffer" nichts ausgelesen werden kann, sobald störende ASCII-Zeichen in den Nutzdaten sind? Am Sender kann ich leider nichts verändern.
Im Fehlerfall sieht die Ausgabe lediglich so aus:
> Laenge Nutzdaten: 228 bytes lang
> Inhalt: ""
Wie kann ich verhindern, dass aus "buffer" nichts ausgelesen werden kann, sobald störende ASCII-Zeichen in den Nutzdaten sind? Am Sender kann ich leider nichts verändern.
Code:
char buffer[MAXBUFLEN];
numbytes = recvfrom(sockfd, buffer, MAXBUFLEN-1 , 0, (struct sockaddr *)&their_addr, &addr_len))
printf("Laenge Nutzdaten: %d bytes lang\n", numbytes);
buffer[numbytes] = '\0';
printf("Inhalt: \"%s\"\n", buffer);
Im Fehlerfall sieht die Ausgabe lediglich so aus:
> Laenge Nutzdaten: 228 bytes lang
> Inhalt: ""
Zuletzt bearbeitet: