我爲我的遊戲創建了一個「修補器啓動器」,當您啓動遊戲時,它會自動下載最新版本的遊戲。但是,當多個人同時下載文件時,每個人的下載都會凍結並停止,並且只有當其他人關閉其下載並且每次只下載1個時纔會恢復。任何人都可以幫忙這裏是我用來從URL下載文件的當前代碼。當多個客戶端嘗試下載文件時,從URL下載文件會停止
public void saveUrl(String filename, String urlString)
throws MalformedURLException, IOException {
System.out.println("Downloading " + urlString);
BufferedInputStream in = null;
FileOutputStream fout = null;
int currentdlsize = 0;
int dlsize = new URL(urlString).openConnection().getContentLength();
System.out.println("DL Size " + dlsize);
in = new BufferedInputStream(new URL(urlString).openStream());
fout = new FileOutputStream(filename);
byte data[] = new byte[1024];
int count;
while ((count = in.read(data, 0, 1024)) != -1) {
fout.write(data, 0, count);
currentdlsize += count;
System.out.println("Downloaded " + currentdlsize + "/" + dlsize);
prog.setMaximum(dlsize);
prog.setValue(currentdlsize);
progstat.setText("Downloading at " + currentdlsize + "/" + dlsize);
}
in.close();
fout.close();
System.out.println("Downloaded to " + filename);
}
你使用的是什麼服務器端? –
確保萬一拋出任何異常,您將會意識到這一點。從這個方法中不可能告訴它,因爲它只是將異常拋出到下一個較高級別的調用,而我們不能看到該代碼如何處理異常。 –
在服務器端沒有什麼特別的,我猜它只是一個普通的Apache文件服務器。我對這方面的知識不太瞭解,但基本上我只是將遊戲JAR上傳到我的網站,然後從那裏下載修補程序。也沒有例外拋出,下載只是爲每個人「暫停」,只有當其他人退出應用程序時纔會恢復,並且您是唯一下載的人。 –