Ich bin neu in C# und ich habe ein Problem mit quadratischen weißen Zeichen in Textfeld in C#. (siehe Screenshot unten)
Ich habe Client-Server-Programm für das Chatten implementiert, das von System.Net.Sockets.
unterstützt wird. Innerhalb jedes Programms ist byte[] array= new byte[10025]
, die nie ganz voll ist, aber Textfeld leere Zeichen zeigt innen. Kannst du mir beim Löschen dieser Charaktere helfen?
Vielen Dank!
Weißes Zeichen C# Textfeld
liest Code der Client-Seite:
http://pastebin.com/W3Pc3BPG
try
{
while (true)
{
serverStream = clientSocket.GetStream();
int buffSize = 0;
byte[] inStream = new byte[10025];
buffSize = clientSocket.ReceiveBufferSize;
serverStream.Read(inStream, 0, inStream.Length);
string returndata = System.Text.Encoding.UTF8.GetString(inStream);
readData = "" + returndata;
msg();
}
} catch(Exception e)
{
ctThread.Join();
}
Wenn Sie von einem Socket lesen, die Rückkehr aus der 'Read' Methode werden Sie lesen eine ganze Zahl, welche die Anzahl von Bytes sein. Sie * müssen * diese Zahl respektieren - der Rest der Zeichen in 'array' wird unbrauchbar sein. Wenn Sie den Post mit Ihrem Socket-Lesecode aktualisieren, können wir Ihnen den passenden Fix vorschlagen (aber im Grunde ist es "Nehmen Sie nur die richtige Anzahl an Zeichen aus dem Array") –
Sie haben ein Problem mit der Codierung Wenn Sie eine Textbox verwenden ersetzen Sie mit RichTextBox.Wenn Sie einen beliebigen Stream verwenden, stellen Sie sicher, dass die Codierung UTF8 ist.Der Standardwert ist ASCII, der nicht druckbare Zeichen ändert.Sie können auch Unicode-Zeichen verwenden, die möglicherweise Unicode (nicht UTF8) verwenden.A – jdweng
können Sie den Code von Ihre Kommunikationsprozedur? –