TcpClient client = server.AcceptTcpClient();
NetworkStream stream = client.GetStream();
int i;
                    Byte[] bytes = new Byte[256];
                    String data = null;
                    while ((i = stream.Read(bytes, 0, bytes.Length)) != 0)
                    {
                        data = System.Text.Encoding.Default.GetString(bytes, 0, i);
                        Console.WriteLine("Received: {0}", data);
                        data = data.ToUpper();
                        data = "C# say: " + data;
                        byte[] msg = System.Text.Encoding.Default.GetBytes(data);
                        stream.Write(msg, 0, msg.Length);
                        Console.WriteLine("Sent: {0}", data);
                    }-----------------------------------
求优化!!!觉得上面这个while太麻烦了!

解决方案 »

  1.   

      byte[] msg = System.Text.Encoding.Default.GetBytes(data);
      stream.Write(msg, 0, msg.Length);
    改为
    stream.Write(bytes, 0, bytes.Length);
      

  2.   

    好像有个直接通过StreamReader读取的,但不知道有啥弊端
      

  3.   

    求线程模式!~
    我不知道我的对不。
    我是把他写到类里面
    private Thread td = null;  
    xx = new Thread(new ThreadStart(yy));
    这样,但是我发现也有问题。
      

  4.   

    额~~~循环的读取操作,this.Dispatcher.BeginInvoke(new Action(
                delegate()
                {}))放到委托多线程进去