2

我有一个用 C++/C# 编写的客户端软件和一个数据库。现在不想让客户端直接访问数据库,于是想到了在中间放一个应用服务器。这应该从客户端得到一个简短的请求,向数据库请求新数据,进行一些过滤(在 sql 中无法完成),然后将数据返回给客户端。

我对这种软件的搜索把我带到了 Glassfish 或 Tomcat,但我理解的问题是,这些软件总是想用 html/jsp 来谈论 http。因为无论如何我的大部分数据都是加密的,所以我不需要这样的纯文本协议,并且对只需要字节流的东西完全满意。另一方面,让服务器为我处理线程池会很好(不想从头开始实现所有这些)。

经过一天多的搜索/测试后,我比开始时更加困惑(ejb、bean、servlet、websocket,......在理解最简单的教程之前,谷歌有很多东西)。

TL;DR:我如何让 Tomcat/Glassfish 只打开一个套接字并为每个请求创建一个新线程,而不涉及任何 HTML/CSS/JSP?

4

2 回答 2

0

GlassFish 是一个“企业应用服务器”,面向 Java EJB 规范。这对于你的目的来说肯定是过度的。你可以试试Tomcat。它是一个“servlet 容器”,针对 Java Servlet 规范。Servlet 有一个目的:侦听传入的 URL(请求),执行 Java 代码并返回响应,通常通过 HTTP。

当然,您可以启动自己的(普通)ServerSocket,例如使用ServletContextListener(将在您的应用程序启动后启动)。但是您应该使用更高级别的协议来发送数据,例如Hessian 和 Burlap,它们在 Java 和 C++ 中都实现了并且易于设置

于 2015-12-02T14:10:09.693 回答
0

Jetty 和 Tomcat 是所谓的 servlet 容器,因此主要针对 HTTP 交换。Glassfish 是一个使用 servlet 容器作为其模块之一的应用程序服务器。我会停止朝那个方向思考——这更像是 Web 应用程序和 Web 服务——你所要求的某些级别太高了。

我认为你应该更多地研究一下。像Netty一样,它是 merley 一个“高性能协议”服务器。看看这里的文档(甚至那里的某种教程可能适合您的用例)。

于 2015-12-02T10:57:17.347 回答