2

我一直在浏览 HTTP 文件服务器和上传服务器上的示例。

我正在编写一个可以同时执行以下操作的文件服务器:发送和接收文件。但我不确定如何合并 2 个管道。或者我可能需要根据命令(上传或获取文件)修改它们。即使文档声明一旦建立通道就无法修改管道,我看到“端口统一”示例确实根据数据对其进行了修改。

任何帮助将不胜感激。

4

2 回答 2

2

听起来您需要一个 HTTP 服务器,并区分GET用于将文件下载到客户端和POST将文件上传到服务器的 HTTP,而不是用管道区分类型。查看HttpStaticFileServerHandler以下载带有GET请求的文件。你需要适应的是第一行messageReceived

@Override
public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception {
    HttpRequest request = (HttpRequest) e.getMessage();

    if (request.getMethod().equals(HttpMethod.POST)) {
        // receive uploaded file
        return;
    }

    if (request.getMethod() != GET) {
        sendError(ctx, METHOD_NOT_ALLOWED);
        return;
    }

    ...
于 2012-07-16T05:50:06.083 回答
1

我认为您需要将您的应用程序视为 2 个子应用程序合二为一。

第一个子应用程序是文件服务器。您将需要根据Http 文件服务器示例引导并为此创建管道。

第二个子应用是上传客户端。您将需要根据http 客户端示例单独引导和创建管道。

于 2012-07-15T21:27:09.450 回答