【问题标题】:How do I create a server to client connection on a non-http protocol using Java?如何使用 Java 在非 http 协议上创建服务器到客户端的连接?
【发布时间】:2014-06-16 17:51:43
【问题描述】:

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

【问题讨论】:

  • 是的。这是。您尝试/研究了什么来实现这一目标?
  • 为什么客户端必须直接与数据库对话?服务器在本地查询数据库并通过 HTTP 向客户端提供数据。
  • 是的,我找到了一些像 REST 这样的解决方案,但我想知道是否还有其他解决方案(最终不太复杂)
  • @MarcellFülöp 这是我想做的,但我完全不知道该怎么做。
  • @user3745832 最简单、最安全的解决方案是向服务器查询数据并让服务器访问数据库。如果您有客户直接与数据库对话,这是一个巨大的漏洞。

标签: java php database http tunnel


【解决方案1】:

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

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

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

然后您从服务器处理这些包,并在需要时向客户端发送响应。

All About Sockets

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

【讨论】:

  • 我已经在使用套接字了,但我坚持认为如果我使用端口 80 会产生干扰。在端口 80 上使用套接字是否安全?它不会在http和java之间产生干扰吗?Java(serv)通过分析端口:80上的所有内容不会过载? ://
  • 如果不使用,可以放心使用。只要确保你没有运行任何网络服务器
  • 谢谢你,我现在试试,告诉你它是否有效:D
  • 所以,其实不行,我就这样试试
  • 很遗憾,您遇到了什么问题?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-29
  • 2015-02-07
  • 1970-01-01
  • 1970-01-01
  • 2019-02-28
相关资源
最近更新 更多