![]() |
\0 im String?
Moin,
ich versuche gerade Daten aus einem Socket zu lesen und das solange, wie er connected ist, das funktioniert auch soweit, nur habe ich in meinen Strings manchmal sehr viele "\0" am Anfang....der Server sendet sie auf keinem Fall... Weiss jemand woher sowas kommen kann? Hier ein Screen: ![]() Wodurch kann sowas entstehen? Senden tut der Server sie nicht wie gesagt. |
Re: \0 im String?
Hi,
könnte daher kommen, dass du (oder der Server - woher willst du wissen, dass er das nicht sendet? Kennst du den Quelltext?) auf leere PChars zugreifst und diese zusammengefügt werden, PChars werden nämlich mit \0 abgeschlossen. Ich würde das Zeichen einfach ignorieren. cu |
Re: \0 im String?
Es ist ein IRC Server(euIRC), der sendet sowas nicht, das darf kein IRC Server, da das im rfc fest definiert ist wie die parameter dazustehn haben. Und das ist: [Prefix <Space>] <Command> <Paramater><CRLF>
also es gibt höchstens 1 leerzeichen der die parameter trennt und ein abschliessendes #13#10...aber nicht so ein schnickschnack wie #0#0#0#0#0#0. Ich muss im Code irgendwo selbst diese Nullen reinpacken(was ich aber ja nicht möchte) nur weiss ich nicht wo. Und wie ich sie rausbekomme weiss ich auch nicht :( |
Re: \0 im String?
Hi,
ich wäre mir da nicht so sicher, was IRC-Server alles machen, obwohl's nicht im RFC festgehalten ist :). Schau doch mal mit Ethereal oder einem anderen Packetsniffer, was tatsächlich über die Leitung geht - nur um eine Fehlersuche an der falschen Stelle auszuschließen (ich hab solche Zeichen aber ehrlich gesagt auch noch nie im IRC empfangen, bin aber auch nicht im euIRCnet). cu |
Re: \0 im String?
back ;)
ok, habe mit ethereal mal "geschnüffelt" und dort werden die #0 Zeichen nicht mitgesendet... Übrigens sieht das ganze in der Konsole so aus: ![]() Der einzige Unterschied bei diesen 2 Befehlen ist, dass sie ca 2min nach dem connecten an mich gesendet werden...die anderen gleich sofort beim verbinden... irgendwie müssen die 0-Zeichen während des "nichtskommens" in den string kommen...hmm |
Re: \0 im String?
Hi,
ich würde Schritt für Schritt debuggen nun: erstmal unmittelbar nach dem Empfangen des Strings durch deine Socketkomponenten, nach jedem weiteren deiner eigenen Bearbeitungsschritte ebenfalls. So solltest du den Fehler recht schnell einkreisen können. cu |
Re: \0 im String?
OT:
@Pseudemys Nelsoni: Was hast du denn für eine seltsame VS-Version; Die Menuleiste ist auf Englisch und die Toolbars sind auf Deutsch (Fehlerliste, Aufrufliste). :? In der Titelleiste steht auch "Debuggen" anstatt von "Debugging". Grüße Faux |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz