0

ファイルの受信中に 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


            }
4

1 に答える 1

0

ほとんどの場合、ファイルはStreamReaderのバッファで消費されていますが、Stream. 率直に言って、両方を使用するのは得策ではありません。StreamReaderを完全に破棄して だけを使用Streamすることもできます。これは、10 進値10またはのバイトが表示されるまで読んで、自分でテキスト行の終わりを探す必要があることを意味します13

于 2013-06-24T06:45:47.273 に答える