2016-11-29 4 views
-2


私はC#で新しく、C#のテキストボックスに白い四角の文字で問題があります。
System.Net.Sockets.でサポートされているチャット用のクライアント/サーバープログラムを実装しました。各プログラムの内部には完全にいっぱいではありませんが、テキストボックスには空白文字が表示されます。このキャラクターの削除を手伝ってもらえますか?
ありがとうございました!クライアント側の

Blank white character squares白文字C#テキストボックス

読むコード:
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(); 
     } 
+4

を排除します。あなたはこの数字を尊重しなければなりません - 'array'の残りの文字はゴミになります。あなたのソケット読み込みコードでポストを更新したら、適切な修正を提案することができます(しかし、基本的には '' array'から正しい数の文字を取ります) –

+1

あなたはエンコードの問題があります。あなたがUnicode(UTF8ではなく)を使用する必要があるかもしれないUnicode文字を持っているかもしれません。 – jdweng

+0

あなたはコードを投稿できますか?あなたの通信手順は? –

答えて

2
serverStream = clientSocket.GetStream(); 
int buffSize = 0; 
byte[] inStream = new byte[10025]; 
buffSize = clientSocket.ReceiveBufferSize; 
// Make sure you respect the number of bytes that have been read. 
// Note that the below code is not the most performant - it's just 
// to demonstrate the technique. 
int bytesRead = serverStream.Read(inStream, 0, inStream.Length); 
byte[] theData = inStream.Take(bytesRead).ToArray(); 
string returndata = System.Text.Encoding.UTF8.GetString(theData); 
readData = "" + returndata; 
msg(); 
+0

もう一度ありがとうございます!今私は理解し、すべてが完璧に動作します。 – ZPA

0

あなたはそれがホワイトスペースがあるかどうかを確認するために、テキストボックスにコードの下に使用することができます。

bool hasAllWhitespace = txtBox1.Text.Length>0 && 
         txtBox1.Text.Trim().Length==0; 

あなたがソケットから読み出された場合、 `Read`方法を使用すると、読み込まれたバイトの数を含む整数であろうからの復帰スペース

if (hasAllwhitespace) 
{ 
    txtBox1.Text.Trim(); 
} 
関連する問題