使用TCP发送时收到的文件为空

时间:2013-06-24 06:14:35

标签: c# tcp networkstream

我尝试使用C#通过TCP发送文件 在接收文件时 我发现它是0 KB 如何解决? 这是守则 //服务器

 TcpListener list = new TcpListener(localAddr, port);
            list.Start();
            TcpClient client  = list.AcceptTcpClient();//accepting connection with client when send button is clicked there .. !
            StreamReader s = new StreamReader(client.GetStream());
            Stream st = client.GetStream();
            rd = s.ReadLine();
            //FileStream fileStream = new FileStream(textBox1.Text + "\\" + rd.Substring(0, rd.LastIndexOf('.')), FileMode.Create, FileAccess.Write, FileShare.ReadWrite);//new file stream

            FileStream fileStream = new FileStream(folderBrowserDialog1.SelectedPath , FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);//new file stream

            int byteSize = 0;
            byte[] b1 = new byte[2048];



            while ((byteSize = st.Read(b1, 0, b1.Length)) > 0)//if stream read any thing that mean the file didn't finish yet !
            {
              fileStream.Write(b1, 0, byteSize);//write data in file till it finishes


            }

1 个答案:

答案 0 :(得分:0)

最有可能的是,您的文件已在StreamReader的缓冲区中使用,但您正在阅读Stream。坦率地说,使用两者并不是一个好主意。您可能想要完全丢弃StreamReader并只使用Stream - 它只是意味着您需要自己查找文本行的结尾,直到看到带有十进制值的字节为止1013