gpt4 book ai didi

java - 我应该在客户端/服务器应用程序中使用套接字吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:16:18 24 4
gpt4 key购买 nike

Similar: Socket vs HTTP based communication for a mobile client/server application

我目前正在开发一个基于 Java 客户端-服务器的程序(打算将它变成一个 Android 应用程序)。我已经成功地实现了服务器引擎,客户端可以完美地连接和交换数据。我的实现基于 this我的答案。

缺点是,所有通信都是直接通过套接字完成的,根本没有协议(protocol)。这是公认的、安全的或专业的客户端-服务器通信方式吗?

更进一步,如果我想接受信用卡、PayPal 或 Google 电子钱包,我的应用程序是否符合他们的安全标准,因为我不使用 SSL?如果我使用我自己的安全级别,比如说 javax.crypto.CipherOutputStream 呢?

最佳答案

您的问题即将过于宽泛,但无论如何 ;-) 由于我们不知道您自己的基于套接字的通信协议(protocol)的“质量”和深度,因此很难判断它是否能够“竞争” "与其他协议(protocol)。因此,让我们假设您处理了必要的事情,并且您的服务器能够处理许多并行连接并遵循“最佳实践”。

我看到了实现自己的协议(protocol)的优势,您已经提到了它们:

  • 它基于您已经了解并熟悉的东西(套接字)
  • 您拥有完全的控制权,不依赖于任何框架
  • 您知道实现的“胆量”,并且是出现问题时的第一权威

但肯定有缺点和风险:

  • 不仅可以做所有事情,这很快就会成为必须
  • 您的协议(protocol)需要在实验室条件之外运行良好。在现实世界中,您看不到有线或 Wifi 网络的质量。 2G/3G/4G 网络可能不稳定,出现中断,传输速度可能很慢
  • 某些环境可能存在非 http(s) 流量的问题

如果您实现自己的基于套接字的协议(protocol)的原因是效率,那么还有其他协议(protocol)不是“繁琐的”并且在字节级别上工作。如果您真的考虑替代品,您可以看看 MQTT。

如果你对 http 不过敏,你可以看看 REST over https。

但无论您认为哪种协议(protocol)“适合”应用程序的主要通信:您始终可以为有此需求的服务混合使用 http(s)。

关于java - 我应该在客户端/服务器应用程序中使用套接字吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34885208/

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