Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用URL创建可下载文件_Java_Http - Fatal编程技术网

Java 使用URL创建可下载文件

Java 使用URL创建可下载文件,java,http,Java,Http,如何使任何计算机上的本地文件可用作带有URL的可下载文件。客户端java应用程序将访问URL以下载文件。创建一个java服务器,如果您位于路由器/代理/防火墙后面,请确保公开它如果您从internet外部访问它,如果不是,如果您在同一子网中,则可以忽略此考虑 在Java服务器上,使其侦听特定端口,并处理来自该预定商定端口上的自定义Java客户端的TCP调用,以交换数据。然后让Java服务器使用System.IO调用或类似调用将文件作为字节流提供给客户端 Java服务器最好是LAMP、Jetty或

如何使任何计算机上的本地文件可用作带有URL的可下载文件。客户端java应用程序将访问URL以下载文件。

创建一个java服务器,如果您位于路由器/代理/防火墙后面,请确保公开它如果您从internet外部访问它,如果不是,如果您在同一子网中,则可以忽略此考虑

在Java服务器上,使其侦听特定端口,并处理来自该预定商定端口上的自定义Java客户端的TCP调用,以交换数据。然后让Java服务器使用System.IO调用或类似调用将文件作为字节流提供给客户端

Java服务器最好是LAMP、Jetty或任何基于Java的小型服务器,因此您不必从头开始


希望这有帮助。

您可以设置一个Web服务器

Java Web服务器:

  • 这是项目页面:

当然,如果您在路由器后面,则需要将端口80转发到您的计算机。

自Java 1.6以来,JDK附带了一个内置HTTP服务器

此代码用于设置一个简单的http服务器以获取特定的PDF(带请求)


参考:

您可以使用Jetty服务器。将其嵌入JavaSE应用程序非常容易。您可以在此处找到更多信息:

我认为配置文件服务器对您来说尤其有趣:

下面是一个您可以在那里找到的示例:

public class FileServer
{
    public static void main(String[] args) throws Exception
    {
        Server server = new Server();
        SelectChannelConnector connector = new SelectChannelConnector();
        connector.setPort(8080);
        server.addConnector(connector);

        ResourceHandler resource_handler = new ResourceHandler();
        resource_handler.setDirectoriesListed(true);
        resource_handler.setWelcomeFiles(new String[]{ "index.html" });

        resource_handler.setResourceBase(".");

        HandlerList handlers = new HandlerList();
        handlers.setHandlers(new Handler[] { resource_handler, new DefaultHandler() });
        server.setHandler(handlers);

        server.start();
        server.join();
    }
}

如果将
resourceBase
配置为如下文件夹路径:
resource\u handler.setResourceBase(“/path/to/your/folder”)
,则此文件夹中的所有文件都可以通过HTTP访问。

您到底想做什么?是否要使java应用程序可以从其他计算机访问该文件?需要在客户端应用程序之间传输文件。与P2P类似,但仅1对1文件传输。我将无法在使用此应用程序的所有计算机上设置HTTP服务器!整洁-我不知道这是在Java1.6中!另外,从Java1.0.x开始,我一直在使用YourReal的HowTo站点。这是一个很好的资源。对不起,什么?一个URL可以识别几十个方案/协议中的任何一个,即:ftp\://ftp.uiuc.edu是一个有效的URL,但不使用http。@Kylar:的确如此!耶稣基督,我回答的那一刻我的比率是多少?
public class FileServer
{
    public static void main(String[] args) throws Exception
    {
        Server server = new Server();
        SelectChannelConnector connector = new SelectChannelConnector();
        connector.setPort(8080);
        server.addConnector(connector);

        ResourceHandler resource_handler = new ResourceHandler();
        resource_handler.setDirectoriesListed(true);
        resource_handler.setWelcomeFiles(new String[]{ "index.html" });

        resource_handler.setResourceBase(".");

        HandlerList handlers = new HandlerList();
        handlers.setHandlers(new Handler[] { resource_handler, new DefaultHandler() });
        server.setHandler(handlers);

        server.start();
        server.join();
    }
}