-1

使用 java 学习 TCP Socket 编程的良好起点是什么?

我在 java 软件编程方面有相当好的经验,但对 netwrk/socket 编程很陌生。

我正在开发代理缓存服务器。但无法读取发布请求/302/405 请求。我在下面的代码中提到了这个。

http://blog.edendekker.me/a-java-proxy-server-with-caching-and-validation/

但无法修改代码以读取像 www.gmail.com 这样返回 302 Moved Permanently Error 或 405 Method Not valid Error 的 URL。而且也无法读取 POST 请求。

什么是我可以阅读有关处理错误和处理 POST 请求的起点。任何参考链接、示例代码都会有所帮助。

我在类似主题中的上一个问题:

处理 POST 请求并将响应写入客户端套接字

谢谢

4

1 回答 1

1

看起来您的问题与HTTP相关,而不是与 TCP 相关。你想实现一个代理服务器来学习 HTTP 协议吗?如果没有,有几个免费的好代理,通常包括源代码。如果您只是想学习 TCP 套接字编程,请尝试一些更简单的东西,例如 POP3。此外,如果您想在 Java 中执行 TCP,请注意有两种主要方法可以实现它们:

  • 每个连接一个线程
  • 每个应用程序一个线程,在连接之间共享(Java NIO和 NIO2)

假设您真的想处理 HTTP 代理。如果您想实现浏览器使用的所有功能,如缓存、身份验证等,再加上实现代理时产生的额外复杂性,那么 HTTP 并非易事。

如果你真的想咬紧牙关,这里有一个更轻量级的 HTTP 协议版本,有关所有详细信息,请参阅RFC 2616。但请注意,HTTP 1.1 规范 RFC 2616 引用了其他 RFC,您可能还必须针对特定领域(例如身份验证)查阅这些 RFC。

更新:在某些情况下可能更容易的另一件事是使用HTTP 代理来嗅探浏览器和现成代理之间的通信,以快速查看其他人在做什么。

于 2012-10-29T05:27:02.303 回答