接标题,刚开始客户端networkstream.read函数一直执行,无法停止,上网查了说在服务器端传完后要调用networkstream.close(),但调用这个函数后客户端又显示说:已经中止了连接,无法传送数据了。
所以我想问各位好友:
客户端的read如何在接收完数据后停止运行
谢谢你们了C# TCP 

解决方案 »

  1.   

    客户端相关代码如下
            private void ReceiveMessage()
            {
               
                while(!isExit)
                {
                    if (this.InvokeRequired)
                    {
                        MessageBox.Show("Invoke");
                        this.Invoke(new ReceiveMessageDelegate(ReceiveMessage));
                    }
                    else 
                    {
                        MessageBox.Show("进入Receive");
                        NetworkStream ReceiveFromServer = client.GetStream();
                        ReceiveFromServer.ReadTimeout = 1000;
                        ReceiveFromServer.WriteTimeout = 1000;
                        byte[] buffer = new byte[8192];
                        int bytesRead;
                        string message = null;
                        try
                        {
                            while (ReceiveFromServer.DataAvailable)
                            {
                                    bytesRead = ReceiveFromServer.Read(buffer, 0, 255);
                                    message = Encoding.UTF8.GetString(buffer, 0, bytesRead);
                                    MessageBox.Show(message);
                                    rtxContent.AppendText("服务器说:"+message + "\n");
                            } 
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show("从服务器读取数据错误:"+ex.Message);
                        }
                    }
                }
                Application.Exit();
            }
      

  2.   

    一直执行
    第14行的弹窗语句 “进入Receive”