我正在嘗試使用Java編寫應用程序,該應用程序將允許我在服務器和請求該文件的客戶端之間傳輸文件。我打算用插座來做。我的算法有點像這樣:客戶端服務器文件傳輸Java
在服務器上: 在客戶端和服務器之間創建連接。 一旦連接找到你需要發送給客戶端的文件。 然後發送文件的大小到客戶端。 然後發送部分分解的文件。
在客戶端 連接創建後,詢問文件。 接收文件大小,然後接受數據,直到達到文件大小。 停止。
請糾正我,如果我錯了某處算法
我正在嘗試使用Java編寫應用程序,該應用程序將允許我在服務器和請求該文件的客戶端之間傳輸文件。我打算用插座來做。我的算法有點像這樣:客戶端服務器文件傳輸Java
在服務器上: 在客戶端和服務器之間創建連接。 一旦連接找到你需要發送給客戶端的文件。 然後發送文件的大小到客戶端。 然後發送部分分解的文件。
在客戶端 連接創建後,詢問文件。 接收文件大小,然後接受數據,直到達到文件大小。 停止。
請糾正我,如果我錯了某處算法
這不是一個真正的「算法」問題;你正在設計一個(簡單)協議。您所描述的內容聽起來很合理,但實施過於模糊。你需要更具體。例如,你需要決定的一些東西:
此外,您使用的術語 「客戶端」 和 「服務器」 落後。通常,「客戶端」是啓動到服務器的連接的機器,而「服務器」是等待來自客戶端的連接的機器。
您還可以從服務器添加確認,一旦該文件的特定部分是收到, 類似於我們在HTTP協議,這將確保正確已經在服務器上接收到文件的傳送。
如果它是一個TCP套接字,有什麼用?我們正在運行一個可靠的協議。 – blackcompe 2012-04-12 04:44:25
@blackcompe它是可靠的,但你想知道文件傳輸是否已完成或取消/失敗/中斷 – 2012-04-12 04:48:57
@Luiggi門多薩:是的,但不會拋出一個IOException異常,如果連接中斷? – blackcompe 2012-04-12 04:53:46
謝謝你的幫助,我也意識到我正在做的落後,馬上修好! – 2012-04-12 04:55:51