Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

11

27.11.2012, 20:27

Was wenn buffer nicht groß genug ist für die Nachricht? Wenn ich das richtig sehe, wirfst du alle restlichen empfangenen Daten weg, sobald du einen ':' gefunden hast. Wenn danach noch der Anfang einer nächsten Nachricht im Buffer stehen würde, wirfst du diesen einfach weg. Ich würde mal vermuten, dass genau da der Grund für die von dir beschriebenen Probleme liegt. Abgesehen davon geht dein Code, wenn ich das richtig sehe, davon aus, dass recv() einen nullterminierten String liefert, was nicht der Fall ist. recv() returned die Anzahl der empfangenen Bytes. Auch sehe ich keinen Grund, wieso der ':' nur am Ende eines Teilstrings gefunden werden kann.

Ich würde mal sagen, du solltest dir diese Funktion da nochmal ganz genau durchüberlegen...

12

27.11.2012, 20:32

Was wenn buffer nicht groß genug ist für die Nachricht? Wenn ich das richtig sehe, wirfst du alle restlichen empfangenen Daten weg, sobald du einen ':' gefunden hast. Wenn danach noch der Anfang einer nächsten Nachricht im Buffer stehen würde, wirfst du diesen einfach weg. Ich würde mal vermuten, dass genau da der Grund für die von dir beschriebenen Probleme liegt. Abgesehen davon geht dein Code, wenn ich das richtig sehe, davon aus, dass recv() einen nullterminierten String liefert, was nicht der Fall ist. recv() returned die Anzahl der empfangenen Bytes. Auch sehe ich keinen Grund, wieso der ':' nur am Ende eines Teilstrings gefunden werden kann.

Ich würde mal sagen, du solltest dir diese Funktion da nochmal ganz genau durchüberlegen...


Okey danke. Jetzt weiß ich was ich verbessern soll!

lg. denniro
Only God can judge me.