[問題] 透過網路傳檔的問題

看板C_Sharp作者時間18年前 (2007/12/08 06:35), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
想寫個從手機上傳檔案到server的程式, 但是沒有要利用網頁的方式,所以自己試著寫個server&client的程式, 但是總是會卡在傳送的過程中,但是我不是C#的高手, 透過google和查書,都找不到問題是出在哪, compiler都有過,都是就是不能傳成功,只要麻煩板上的高手了, 以下是我的程式: //Server using System; using System.IO; using System.Net; using System.Net.Sockets; namespace TCP_Server { class Program { static void Main(string[] args) { TcpListener tcplistener = new TcpListener(2300); tcplistener.Start(); Console.WriteLine("從2300收取檔案"); Socket mysocket = tcplistener.AcceptSocket(); string filetarget = @"c:\test.3gp"; try { if (mysocket.Connected) { Console.WriteLine("連線成功"); NetworkStream myNetworkstream = new NetworkStream(mysocket); FileStream fout = File.OpenWrite(filetarget); int lngbytes = 1024; Byte[] myByte = new Byte[lngbytes]; while (myNetworkstream.DataAvailable) { myNetworkstream.Read(mybyte, 0, lngbytes); fout.Write(mybyte, 0, myByte.Length); } } } catch (Exception e) { Console.WriteLine(e.Message); } System.Console.WriteLine(); } } } //Client using System; using System.IO; using System.Net; using System.Net.Sockets; namespace TCP_Clinet { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { TcpClient tcpclient = new TcpClient(); tcpclient.Connect("127.0.0.1", 2300); NetworkStream myNetworkstream; myNetworkstream = tcpclient.GetStream(); string filepath = @"c:\sample_50kbit.3gp"; if (myNetworkstream.CanWrite) { FileStream fs = File.Open(filepath, FileMode.OpenOrCreate, FileAccess.Read); Byte[] myByte = new Byte[4096]; int count = 0; while ((count = fs.Read(myByte,0,4096)) != 0) { myNetworkstream.Write(myByte, 0, count); } fs.Close(); } else { textBox1.Text = "no"; } myNetworkstream.Flush(); myNetworkstream.Close(); } } } 紅色部分,則是程式出錯的地方, 訊息是: 錯誤的IOException未處理, 無法寫入資料至傳輸連接: 遠端主機已強制關閉一個現存的連線。 上google大神找到一些範例,我的寫法也差不多, 但是就是不能用,要麻煩板上的高手幫我找個問題在哪了Q_Q -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.177.86
文章代碼(AID): #17MShDiI (C_Sharp)