0

我对在我正在从事的项目中使用 Netty 感到非常兴奋,但我面临着快速跟上进度的巨大压力。我是一位经验丰富的 Java 程序员,但在编写客户端-服务器系统方面没有太多经验。

我正在通过 netty 示例工作,但发现没有太多关于如何正确运行它们的文档。诚然,通过源代码进行挖掘很有用,但是当我使用 HttpStaticFileServer 时,我已经用这种方法碰壁了。客户端请求大概来自 telnet,但我不知道文件请求本身的格式是什么,我尝试了一些。处理程序编解码器根本不清楚。所以一般来说,如果有一组关于如何运行示例的说明会很好。我保证我会在调试器中观察整个过程,这样我就可以了解到底发生了什么。所以目前,至少,我会欣赏 FileServer 的一个简单示例。我想构建的应用程序将从我怀疑的那个构建。谢谢您的帮助!

4

2 回答 2

1

HttpStaticFileServer 将从您的文件系统提供文件。

请参阅 HttpStaticFileServerHandler..sanitizeUri()。这是它将您输入浏览器的虚拟路径映射到物理路径的地方。

所以http://localhost:8080/afile.txt会映射到~/afile.txt. 只需将 afile.txt 放在那里,它就会出现在您的浏览器中。

您可能想先尝试Snoop示例。我在 Eclipse 中加载 netty(记得使用 JDK7)并运行/调试示例应用程序。

于 2012-06-21T23:39:15.890 回答
0

我用 Eclipse 在 Windows 上运行了 HttpStaticFileServer。


要测试示例,请执行以下简单步骤:

  1. 运行服务器
  2. 在网络浏览器中输入:localhost:8080/file.ext(将 file.ext 替换为您的文件)

该文件应该在System.getProperty("user.dir")

在此处查看有关其工作原理的答案

对我来说,它指向 eclipse 工作区目录。因此,ether 使用工作区或更改返回的sanitizeUri(String uri)方法HttpStaticFileServerHandler

 rootPath + File.separator + uri;

代替

 return System.getProperty("user.dir") + File.separator + uri;

其中 rootPath 是文件服务器根目录的路径。

于 2012-08-10T15:31:35.550 回答