如何使用Java套接字从服务器下载文件?

如何使用Java套接字从服务器下载文件?,java,sockets,Java,Sockets,我有一个关于上传和下载文件到服务器的作业。我使用Java套接字成功地完成了上传部分,但是我很难完成下载部分。我应该使用Range:来下载并行程序。在我的请求中,我应该有范围:header。但我不明白如何接收带有HTTP GET请求的文件。我看到的所有例子都是关于上传文件的。我已经做到了。我可以上传.exe,image,.pdf,任何东西,当我通过浏览器下载回来时,没有错误。你能帮我下载部分吗?你能给我举个例子吗,因为我真的不明白。你需要从你发出请求的同一个套接字中读取。首先,把它打印出来。当您熟

我有一个关于上传和下载文件到服务器的作业。我使用Java套接字成功地完成了上传部分,但是我很难完成下载部分。我应该使用Range:来下载并行程序。在我的请求中,我应该有范围:header。但我不明白如何接收带有HTTP GET请求的文件。我看到的所有例子都是关于上传文件的。我已经做到了。我可以上传.exe,image,.pdf,任何东西,当我通过浏览器下载回来时,没有错误。你能帮我下载部分吗?你能给我举个例子吗,因为我真的不明白。

你需要从你发出请求的同一个套接字中读取。首先,把它打印出来。当您熟悉它时,开始解析它。文件将在那里。

这并不能直接回答您的问题,但无论如何我还是值得一提的

如果你的家庭作业没有明确告诉你直接使用套接字,那么有更简单、更好的方法用Java上传和下载HTTP文件:

在http:url上使用将为您提供一个可用于向远程服务器发出GET、PUT、POST等请求的。这将为您处理基本的HTTP协议内容

这些库做同样的事情,但方式更复杂,有更多的选项和更多的钩子来处理内容,包括表单和MIME多部分、连接和凭证管理、代理和路由查找等

如果你的家庭作业练习的目的是教你与远程服务器对话的实用方法,那么使用这些课程要比尝试从套接字级别上实现HTTP协议的子集实际得多


当然,目的可能是让您更深入地了解HTTP协议的有线级别。。。这将使您当前的方法成为正确的方法。

谢谢,我做到了。我使用字节数组读取输入流,并使用fileinputstream和fileoutputstream将其写入文件

我不想让任何人做我的作业,我只想开始下载部分,如果我能做到这一点,我将自己完成线程部分,希望不用问任何人。@Ada:感谢你的态度。只是我们不知道您的解决方案处于什么状态而没有看到它,这使得很难给出建议。我应该更改readData部分吗?我在那里使用了BufferedReader,我应该使用DataOutputStream吗?我要下载的文件是二进制的,我想我需要把它们读入二进制数组吗?我现在走的路对吗?我也在检查WireShark和Application Manager的请求,我不知道它的确切英文名称。有许多浪费CPU的java程序实例,它们从未终止我的程序。我试图读取它,但程序刚刚退出。我做错了,如果是这样,把代码贴在这里或者像pastebin这样的东西上。您的代码中一定有错误,但是如果不看到代码就很难判断是什么错误。不幸的是,我们不允许使用套接字以外的任何东西