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協議的應用...