[問題] 網路傳圖檔問題

看板C_Sharp作者 (喜洋洋)時間17年前 (2008/10/11 18:36), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/1
server端 private void button1_Click(object sender, EventArgs e) { IPEndPoint ipe = new IPEndPoint(IPAddress.Any, 12345); Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); s.Bind(ipe); s.Listen(100); Socket c=s.Accept(); SaveFileDialog savepic = new SaveFileDialog(); savepic.Filter = "bmp ?(*.bmp)|*.bmp|" + "JPG ?(*.jpg)|*.jpg;*"; if (savepic.ShowDialog() == DialogResult.OK) { FileStream fs = new FileStream(savepic.FileName, FileMode.Create); StreamWriter sw = new StreamWriter(fs, Encoding.Default); NetworkStream ns = new NetworkStream(c, true); byte[] byteArray = new byte[1024]; while (ns.DataAvailable) { ns.Read(byteArray, 0, byteArray.Length); string str = System.Text.Encoding.Default.GetString(byteArray); sw.Write(str); } sw.Flush(); c.Close(); } } client端 private void button1_Click_1(object sender, EventArgs e) { IPEndPoint ipe = new IPEndPoint(new IPAddress(new byte[] { 140, 118, 122, 88 }), 12345); Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); s.Connect(ipe); OpenFileDialog OpenPhoto = new OpenFileDialog(); OpenPhoto.Filter = "bmp ?(*.bmp)|*.bmp|" + "JPG ?(*.jpg)|*.jpg;*"; if (OpenPhoto.ShowDialog() == DialogResult.OK) //給予使用者設定讀 檔位置 { FileStream fs = new FileStream(OpenPhoto.FileName, FileMode.Open); StreamReader sr = new StreamReader(fs, Encoding.Default); String temp = sr.ReadToEnd(); NetworkStream ns= new NetworkStream(s,true); byte[] byteArray = System.Text.Encoding.Default.GetBytes(temp); ns.Write(byteArray, 0, byteArray.Length); ns.Flush(); } } 不知為啥這個程式傳的跟讀取的圖檔大小都不一樣 還有有些部分用記事本開發現他有些空白鍵會換傳成? 不知是否有人知道這個程式碼哪邊有問題 謝謝各位大大 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.118.122.88

10/11 20:14, , 1F
use BinaryReader, rather than StreamReader.
10/11 20:14, 1F

10/12 00:48, , 2F
感謝您了回答 不知各自的適用狀況是如何
10/12 00:48, 2F
文章代碼(AID): #18y86Nmr (C_Sharp)