如何使用Java在非http协议上创建服务器到客户端的连接?

如何使用Java在非http协议上创建服务器到客户端的连接?,java,php,database,http,tunnel,Java,Php,Database,Http,Tunnel,我有两个java应用程序(一个客户端和一个服务器)。服务器应用程序和数据库位于同一台服务器上。但是,客户机应用程序可以在任何地方。我的问题是服务器会阻止所有连接(http除外),因此我无法使用客户端应用程序访问数据库。是否可以通过http(或ftp)使用类似隧道的方式使客户端应用程序能够询问我的数据库?看看套接字。与现代框架相比,它的级别较低,但您可以连接到特定的端口并轻松地将数据包从客户端发送到服务器 您需要创建一个服务器套接字并侦听端口80(HTTP)上的连接 客户机将拥有自己的客户机套接字

我有两个java应用程序(一个客户端和一个服务器)。服务器应用程序和数据库位于同一台服务器上。但是,客户机应用程序可以在任何地方。我的问题是服务器会阻止所有连接(http除外),因此我无法使用客户端应用程序访问数据库。是否可以通过http(或ftp)使用类似隧道的方式使客户端应用程序能够询问我的数据库?

看看套接字。与现代框架相比,它的级别较低,但您可以连接到特定的端口并轻松地将数据包从客户端发送到服务器

您需要创建一个服务器套接字并侦听端口80(HTTP)上的连接

客户机将拥有自己的客户机套接字,并在该端口连接到服务器套接字,然后开始发送数据,数据可以从原始字节发送到整个序列化对象

然后从服务器处理这些包,如果需要,向客户机发送响应


PS:您可能还想了解处理多个客户端的Java线程。请注意,如果没有线程支持,一次只能连接一个客户端

是。它是。您尝试/研究了什么来实现这一点?为什么客户机必须直接与数据库对话?服务器在本地查询数据库并通过HTTP向客户端提供数据。是的,我找到了一些解决方案,如REST,但我想知道是否还有其他解决方案(最终不那么复杂)@MarcellFülöp这是我想做的,但我根本不知道如何做到这一点。@user3745832最简单和最安全的解决方案是查询服务器上的数据并让服务器点击数据库。如果您有一个客户端直接与数据库对话,这是一个巨大的漏洞。我已经在使用套接字,但我认为如果我使用端口80,它会造成干扰。在端口80上使用套接字安全吗?它不会干扰http和java吗?通过分析端口80上的所有内容,java(serv)不会过载:/如果它没有被使用,它是安全的使用。请确保您没有运行任何web服务器谢谢,我现在就尝试,并告诉您它是否有效:DSo,实际上它不起作用,我将以这种方式尝试。听到这个消息我很抱歉,您遇到了什么问题?