Re: [問題] 用socket做檔案傳輸的檔案大小問題...

看板java作者 (mat)時間16年前 (2008/06/21 10:04), 編輯推噓8(803)
留言11則, 4人參與, 最新討論串2/4 (看更多)
沒人在用超大陣列的啦....都馬分批送 簡單概念 先取得檔案大小 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)

06/21 12:30, , 1F
米油姐好 建中哥好 =口=
06/21 12:30, 1F

06/21 12:55, , 2F
嚇我一跳~ 建中哥好XD
06/21 12:55, 2F

06/21 12:56, , 3F
感恩感恩啦 ^^
06/21 12:56, 3F

06/21 13:01, , 4F
話用用超大陣列的話 檔案是不是比較容易損壞?@ @
06/21 13:01, 4F

06/21 13:35, , 5F
還是不太懂耶 實際上讀了n bytes? n是怎麼知道的阿 >"<
06/21 13:35, 5F

06/21 13:37, , 6F
應該說我不知道你的n是指什麼... orz
06/21 13:37, 6F

06/21 13:38, , 7F
n是所謂的buffer size,比方說我一次傳送10KB 就是10480byte
06/21 13:38, 7F

06/21 13:44, , 8F
是10240啦 XD
06/21 13:44, 8F

06/21 13:46, , 9F
n其實是buffer中的資料長度, 不一定等於 buffer size
06/21 13:46, 9F

06/21 13:48, , 10F
至於n怎麼取得,注意一下 read() 的回傳值吧
06/21 13:48, 10F

06/21 16:15, , 11F
我寫出來了!!!~再拜謝建中哥~
06/21 16:15, 11F
文章代碼(AID): #18N66LvU (java)
討論串 (同標題文章)
文章代碼(AID): #18N66LvU (java)