作者chchwy (mat)
看板java
標題Re: [問題] 用socket做檔案傳輸的檔案大小問題...
時間Sat Jun 21 10:04:02 2008
沒人在用超大陣列的啦....都馬分批送
簡單概念
先取得檔案大小 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