首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >remoting vs socket

remoting vs socket
EN

Stack Overflow用户
提问于 2009-04-21 10:05:40
回答 4查看 5.7K关注 0票数 5

remoting和socket之间的区别、优缺点是什么……哪种方式是服务器-客户端功能的最佳方式...

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-04-21 10:10:01

套接字是两个端点之间的原始二进制流。您需要包装自己的RPC (etc)层来处理消息,并处理大量的基础架构代码。然而,由于它们离金属如此之近,这可能是非常非常有效的。它不依赖于任何特定的体系结构,只要两端使用相同的消息格式即可。像protobuf-net这样的工具可以帮助您为流构造二进制消息(而不是使用自己的序列化代码)。

Remoting是一种特定于.NET的工具,它的重新版本控制非常脆弱。我不建议客户端/服务器使用远程处理,而是使用像WCF这样的东西。

WCF是一个更灵活的通信堆栈-非常强大和复杂,但可以说也有点臃肿(xml,复杂的安全性等)。它是基于数据契约的,所以大致上是开放的(客户机/服务器可以不同),但仍然有点.NET。

还提供了一个堆栈;目前只提供了一个HTTP实现,但将来我会添加原始的protobuf-net /IP。

票数 11
EN

Stack Overflow用户

发布于 2009-04-21 12:08:21

与远程处理或WCF相比,直接套接字操作可以为您提供更强大的功能、更高的灵活性和更高的性能,但不幸的是,它的复杂性更高。但是,如果您需要低级TCP/IP的好处,如非阻塞IO和自定义协议,则Ragel等工具和Mina等框架可以减轻复杂性负担。我建议先尝试像WCF这样的高级API,只有在这些不能满足您的需求时才使用直接套接字。

票数 3
EN

Stack Overflow用户

发布于 2009-04-21 10:18:03

我第二个写的是Marc Gravell写的--特别是远程处理和内部序列化很“容易”,但是很容易破坏,并且经常不能很好地扩展到公共网络(我对.net远程处理不是很熟悉,但我猜它需要一个众所周知的注册表服务,这在离开干净的实验室环境时往往是有问题的)。

实现一个标准的甚至自己的RPC更难,但从长远来看更安全:您不会遇到代码修订的问题(或者它们更容易控制),伸缩完全由您自己的代码控制,而且使用各种技术开发组件也很容易。

有许多工具可以帮助您轻松地在套接字上构建RPC机制,但我真的很喜欢使用普通的老式HTTP -在服务器进程中运行一个简单的HTTP嵌入式服务器,而您的客户端只需要一个HTTP客户端来发送消息。如果您开发自己的简单RESTful调用语义(而不是使用一些臃肿的消息格式,如SOAP或XML),那么几乎没有什么可做的:-)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/771912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档