我用streamwriter向networkstream中写入内容,当写入的东西超过1024字节时,后面的东西都不能被接收方收到。为什么呢?应该如何处理?
附代码:
【服务端】
        private void PublicListenThread()
        {
            Socket Server_Listener;
            Socket cSocket;
            NetworkStream ns;
            StreamReader sr;
            StreamWriter sw;
            Server_Listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            IPAddress LocalIP = IPAddress.Parse(LocalIPAddress);
            IPEndPoint Server = new IPEndPoint(LocalIP, 8484);
            Server_Listener.Bind(Server);
            Server_Listener.Listen(10);            while (true)
            {
                cSocket = Server_Listener.Accept();
                if (cSocket.Connected)
                {
                    StringBuilder xxxx=new StringBuilder("",2000);
                    ns = new NetworkStream(cSocket);
                    sr = new StreamReader(ns);
                    sw = new StreamWriter(ns);
                    for(int k=0;k<=1024;k++)
                     {
                       xxxx.Append("a");
                     }
                    xxxx.Append("\0");
                    char[] tests = System.Text.Encoding.Default.GetChars(System.Text.Encoding.Default.GetBytes(xxxx.ToString()));
                    sw.Write(tests);
                    sw.Flush();
                }
            }
        }
【客户端】
{
                TcpClient client = new TcpClient(hostName, portNum);
                NetworkStream ns = client.GetStream();
                int x;
                StringBuilder ServerReturn = new StringBuilder("", 99999);
                x=ns.Read(_ServerReturn, 0, 99999);
                char[] temp = System.Text.Encoding.Default.GetChars(_ServerReturn, 0, _ServerReturn.Length);
                while (temp[i] != '\0')
                {
                 ServerReturn.Append(temp[i].ToString());
                 i++;
                }                
                client.Close();
}