Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的网络通信选项(客户端/服务器)_Java_Networking_Protocols_Rmi - Fatal编程技术网

Java中的网络通信选项(客户端/服务器)

Java中的网络通信选项(客户端/服务器),java,networking,protocols,rmi,Java,Networking,Protocols,Rmi,还有RMI,据我所知,它是相对脆弱的,直接套接字连接,它的级别相当低,还有字符串,虽然它看起来非常坚固,但似乎是隐喻性的PHP 对于基于internet的客户端/服务器通信,我有哪些不太基本的选项?优点/缺点是什么?我应该考虑哪些问题?第三方库建议可以,只要它们保持平台独立(即没有限制性的本机代码) 正在寻找选项,而不是明确的答案,因此我将自己需求的详细信息留白。正如您指定的“基于internet”,基于HTTP的方法有很多话要说(我已经强调了您应该考虑的一些问题): 优点: 您可以在服务器端

还有RMI,据我所知,它是相对脆弱的,直接套接字连接,它的级别相当低,还有字符串,虽然它看起来非常坚固,但似乎是隐喻性的PHP

对于基于internet的客户端/服务器通信,我有哪些不太基本的选项?优点/缺点是什么?我应该考虑哪些问题?第三方库建议可以,只要它们保持平台独立(即没有限制性的本机代码)

正在寻找选项,而不是明确的答案,因此我将自己需求的详细信息留白。

正如您指定的“基于internet”,基于HTTP的方法有很多话要说(我已经强调了您应该考虑的一些问题):

优点:

  • 您可以在服务器端使用/滥用众多web层框架之一(例如)
  • 底层工作已在客户端(Apache HTTPClient)上完成
  • 纯文本协议易于在线调试
  • 大量可用的工具可帮助您调试交互(例如)-您可以假装是客户机或服务器,因此独立开发,直到另一端准备就绪
  • 使用知名端口(80/443)可以更轻松地穿透公司防火墙
缺点:

  • 有一个相当重要的假设,服务器将承担大部分工作-如果您的模型是“反向的”,那么使用RESTful可能没有多大意义
  • 原始性能将低于基于线插座的方法上的位
  • 纯文本协议很容易在线路上嗅探(SSL可以解决这一问题)

相对脆弱是什么意思?RMI的问题与它是一个狭窄的基础上的大型上层建筑有关,特别是它对DNS和对象序列化有很大的依赖性。离硅越近,任何程序都变得越“脆弱”,但需要编写的代码就越多。这是一种权衡。尽管我写过一本关于RMI的书,但我不是一个独眼的RMI支持者,但“脆弱性”这个词太强了。它做它所做的,而且做得相当好。如果您需要大规模的可伸缩性,RMI/IIOP在许多方面都做得更好。如果您对世界的看法是一个至多一次的远程方法调用,而没有太多的安全性,那么RMI/JRMP将为您提供它。从该模型中获得的信息越多,应用起来就越困难。

我想说,项目的细节可能会决定您的需求。Aka,让软件需求告诉您(我们)哪个方向最适合这种情况!就个人而言,我是插座的超级粉丝。。。但是我可以肯定地看到套接字并不是Java中“一刀切”的一部分:)谢谢,这正是我想要的答案。简短,简洁,但仍然详细,与更多的阅读材料链接。现在,如果您可以对所有其他选项重复此操作?;)