我尝试使用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
}
答案 0 :(得分:0)
最有可能的是,您的文件已在StreamReader
的缓冲区中使用,但您正在阅读Stream
。坦率地说,使用两者并不是一个好主意。您可能想要完全丢弃StreamReader
并只使用Stream
- 它只是意味着您需要自己查找文本行的结尾,直到看到带有十进制值的字节为止10
或13
。