gpt4 book ai didi

java - 用Java编写一个像Tomcat这样的服务器

转载 作者:行者123 更新时间:2023-12-02 07:48:31 24 4
gpt4 key购买 nike

用 Java 或其他编程语言编写像 Tomcat 这样的服务器有多难?

我一直很喜欢使用 UDP 和 TCP 套接字,将它们塑造成简单的客户端和服务器,以便在我的计算机上传递数据,我想知道从头开始编写服务器有多难?

我知道至少有一个用 Java 编写的操作系统,在通常用 C 或 ASM 编写的部分中使用了 JVM。

最佳答案

Java is very capable when writing client / server programs 。虽然网络并不容易,但有许多工具包使得编写此类程序变得更加困难,需要更多的必备知识。

对于“Tomcat”类型的服务器,您还需要学习很多有关类加载的知识,以防止被标识为“应用程序”的 Java 类的“树”发生交叉通信。类加载需要更多的时间才能正确,主要是因为需要编写一组像样的测试来真正确保类位于正确的位置,并且安全性确实 那里。

工作量大吗?是的。但具体需要多少工作很大程度上取决于细节。一个简单的服务器套接字和接受连接的代码可以由经验丰富的程序员在一天内(或至少一周内)编写完成。实现协议(protocol)(预期和发送的位)将花费更长的时间,具体取决于协议(protocol)支持的“功能”数量。这就是为什么所有“示例”客户端/服务器 Java 程序基本上都是“回显”服务器、时间服务器或其他一些非常琐碎的协议(protocol)。

如果您想要一个复杂的线程模型来确保服务器可以跨额外的核心进行扩展,或者即使在处理其他需要相对较长时间的请求时也可以快速处理请求,那么请继续添加更多时间(因为您放弃简单的线程模型以获取更复杂的线程模型)线程模型)。

现在您将决定一些事情需要可配置,并且您决定如何配置它们将决定您需要在配置子系统上投入多少时间。

实际成本;然而,这不是在应用程序的编写中,而是在测试和错误修复中。对于您在正常情况下编写的每一行代码,许多未考虑的情况最终都会减慢速度。要预先支付一些已知的但通常是计划外的额外时间,请使用测试驱动开发来避免在您想说“我完成了”时支付巨大的测试债务。

关于java - 用Java编写一个像Tomcat这样的服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10524189/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com