PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [c#] byte[] to string und leerzeichenproblem


The_Invisible
2007-04-09, 21:20:42
also, ich lese per tcp socket daten in ein byte[] array:


byte[] buf = new byte[10240];
sock_whois.Receive(buf, 0, buf.Length, SocketFlags.None);


dieses byte[] array wandle ich dann in einen string um


sdata = System.Text.Encoding.UTF8.GetString(buf);


funktioniert soweit alles gut ABER: da buf nie ganz gefüllt wird per socket receive wird der rest einfach mit "leerzeichen" (bin mir nicht ganz sicher) ausgefüllt, die habe ich dann natürlich bei der umwandlung zu einem string auch. sdata.Trim() auf das string objekt funktioniert auch nicht, daher glaube ich das es gar keine gewöhnlichen leerzeichen sind. danke schon mal.

mfg

Gnafoo
2007-04-09, 23:20:41
Socket.Receive(...) liefert dir als Rückgabewert die Anzahl der empfangenen Bytes. Außerdem gibt es eine Überladung der GetString(...)-Methode, welche als Parameter zusätzlich zum Array einen Startindex und eine Länge in Bytes akzeptiert. Damit solltest du in der Lage sein, nur den wirklich genutzten Teil des Arrays auszulesen.

The_Invisible
2007-04-10, 11:05:21
danke, funktioniert wunderbar ;)

mfg