gpt4 book ai didi

java - 当多个客户端尝试下载文件时,从 URL 下载的文件停止

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:29:07 26 4
gpt4 key购买 nike

我正在为我的游戏创建一个“patcher launcher”,它会在您启动游戏时自动下载最新版本的游戏。但是,当不止一个人同时尝试下载该文件时,每个人的下载都会卡住并停止,只有在其他人关闭他们的下载并且一次只有 1 个正在下载时才会恢复。任何人都可以帮忙吗?这是我用来从 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);
}

最佳答案

您的下载代码看起来没问题,我看不出有任何竞争条件的原因,因此无需深入分析您的下载代码,我可以告诉您这段代码(客户端)不是问题所在。它必须是导致问题的服务器端,即您的网络服务器或介于两者之间的代理或防火墙。

此外,也许你应该看看JNLP ,这是一项专为解决应用程序始终更新并在启动时检查这一问题而设计的技术。

关于java - 当多个客户端尝试下载文件时,从 URL 下载的文件停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16919765/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com