RMI大檔案傳輸的一種思路

2021-04-26 23:18:59 字數 1468 閱讀 8214

public inte***ce uploader

uploadservice是rmi提供的服務,uploader是服務端例項化後傳給客戶端使用的。

介面都是在服務端實現的。

然後就是接受檔案的服務端fileserver

public class fileserver

public string requested(string filename)

public synchronized void service()

}} catch (ioexception e)

}}.start();

} else

}public synchronized void close()

system.out.println("已結束檔案傳輸服務");

} catch (interruptedexception e)

}}.start();

} else

}public int getport()

class filetransfersession implements runnable

public void run()

fileoutput.close();

}is.close();

socket.close();

} catch (ioexception e) }}

}這裡的關鍵在那個map,它記錄每個上傳請求生成的key,uploader的實現會傳送自己的key到服務端,從而實現了簡單認證。下面是uploader的實現uploaderimpl。

public class uploaderimpl implements uploader, serializable

public void upload(inputstream input)

}writer.close();

reader.close();

os.close();

s.close();

} catch (unknownhostexception e) catch (ioexception e) }}

uploadservice的實現

public class uploadserviceimpl extends unicastremoteobject implements

uploadservice

public uploader getuploader(string name) throws remoteexception

}介面的實現全是在服務端實現的,客戶端只用知道介面的定義就可使用介面提供的服務,雖然還是使用socket進行的檔案傳輸,但遇到業務邏輯的改變時,只要介面的定義不變,客戶端完全不用作任何改變。

上面的**看起來挺麻煩的,可兼顧了rmi,和socket傳送檔案的優點,不知道還有沒有更好的思路。

兩個eclipse工程,分別作為服務端與客戶端,不依賴其他http服務可直接可執行。

檔案傳輸 大檔案傳輸的4種方式解析

企業如何高效的管理和傳輸大檔案?下面我們先將幾種常用的檔案傳輸方式進行對比分析。1 郵件 比較常用,方便快捷,但是附件大小有限制,一般是10 30m,即使有超大附件傳送,但是考慮到傳送者和接受者的郵件伺服器限制,不能保證郵件一定能傳送成功,且在檔案中轉站中有一定時限,存在檔案過期的現象。而且事實是,...

乙個好用的大檔案傳輸工具

以上只是生活中檔案傳輸的幾個典型案例,單拿出一件來看都足以讓人頭疼不已。好在都9102年了,隨著一些檔案傳輸產品的橫空出世,我們在傳檔案上的窘境也稍微得到緩解。有太多選擇未必能幫到你,所以今天只對你做一項安利,那就是 文叔叔 這兩步,第一步新增檔案和聯絡人,第二步傳送檔案。從極力簡化的操作步驟,可以...

一種Jingle開源庫的檔案傳輸原理與實現

0引言 隨著即時通訊 im 軟體已經成為網際網路資訊平台的重要組成部分 4 但基於自身利益的考慮,各個im軟體均制定並保守自己支援的通訊協議格式和標準,導致了各個通訊軟體不能互聯互通,客觀上制約了im的發展。xmpp 協議標準解決了不同即時通訊平台資訊互通的難題。基於xmpp擴充套件p2p協議的應用...