看板 java 關於我們 聯絡資訊
沒人在用超大陣列的啦....都馬分批送 簡單概念 先取得檔案大小 fileSize while(fileSize>0){ //從檔案讀512 bytes //實際上讀了n bytes //n bytes寫進Socket fileSize -= n; } 接收端動作反過來就好了 == 米油姐XD ※ 引述《miyuika (Challenge!)》之銘言: : 最近在研究用socket作檔案傳輸(我是初學者~冏 : 可做到Server跟Client間,二進位檔案上傳下載(用FileOutputStream) : 但因為byte陣列大小限制在65536, : 檔案只做一次傳輸, 變成說傳送之檔案大小不能超過65536bytes : 該如何解決呢? 多傳幾次嗎?可是怎麼做續傳呢 @@? : 請高人幫忙解惑 orz thx! ^^ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.112.181.151 ※ 編輯: chchwy 來自: 59.112.181.151 (06/21 10:04) ※ 編輯: chchwy 來自: 59.112.181.151 (06/21 10:05)
cair:米油姐好 建中哥好 =口= 06/21 12:30
miyuika:嚇我一跳~ 建中哥好XD 06/21 12:55
miyuika:感恩感恩啦 ^^ 06/21 12:56
miyuika:話用用超大陣列的話 檔案是不是比較容易損壞?@ @ 06/21 13:01
miyuika:還是不太懂耶 實際上讀了n bytes? n是怎麼知道的阿 >"< 06/21 13:35
miyuika:應該說我不知道你的n是指什麼... orz 06/21 13:37
TonyQ:n是所謂的buffer size,比方說我一次傳送10KB 就是10480byte 06/21 13:38
tkcn:是10240啦 XD 06/21 13:44
tkcn:n其實是buffer中的資料長度, 不一定等於 buffer size 06/21 13:46
tkcn:至於n怎麼取得,注意一下 read() 的回傳值吧 06/21 13:48
miyuika:我寫出來了!!!~再拜謝建中哥~ 06/21 16:15