用于 TCP 消息传递的 .NET 项目

标签 .net sockets tcp

.NET 中是否有开源项目或框架为客户端和服务器之间通过 TCP 进行消息传递提供基本“管道”?这似乎是我最终一遍又一遍地编写本质上相同的东西的其中一件事,我想将自己从中抽象出来并处理我的应用程序的细节,而不是编写 又一个通过 TCP 进行消息传递的机制。

希望比 WCF 更小/更简单。我真的对不会尝试解决所有问题的轻量级事物很感兴趣。

最佳答案

首先,在集成或手动代码中,您至少会遇到不同激活、线程模型、缓冲区、框架、安全性和序列化方面的问题。它是任何语言或环境中任何 UDP/TCP 或配置/属性工作的典型特征。它仍然需要根据服务器或客户端需求进行调整,简单地说 I/O 工作中存在巨大可能性的本质。

完全同意 WCF 过于臃肿,与 .NET Remoting(比托管套接字代码慢,后者又比 native iocp 代码慢得多)相比手动滚动代码要慢得多。但这是额外的工作,如果你在一个通用的泛型库中管理了上面的内容(不是更强大的模板,这使得它在 .NET 中变得更难,即你必须以奇怪的方式设计类型+必须使用接口(interface))比你说的好-year 使用一些复杂的管道,如消息队列(这并非不可能,但恕我直言,回顾过去永远不值得“一般地”做......)。

替代方案是 MSMQ,MS 越来越多地在其软件上押注更多的东西,或者半评估的开源位,它们永远不能完全满足您需要的模型。 Tibcos、ActiveMQs,应有尽有。即使在较低级别,最好的也被广泛认为是 C++ boost::asio,尽管被认为是顶级的,但就像其他所有东西一样,它并不适合所有东西。这是一个非常出色的设计,所以我会注意潜在的浪费时间的练习..

在 .NET 上,我会首先采用 MS“今天”推出的任何 50 线程服务,如果不是,则执行“再次类似的代码”,并寻找类似的概念,以便在它再次出现时装备你的工具集(就像每个新的 I/O 库或框架每 5 年左右做一次一样)。

关于用于 TCP 消息传递的 .NET 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/775185/

相关文章:

.net - .NET 应用程序可以编译为 native 吗?

.net - 如何在 .Net Core 中引用 Microsoft.Office.Core (office.dll)

networking - 在 heroku 上设置 $PORT 变量

c# - 针对 .NET 生产服务中的内存泄漏

linux - 使用 SOCAT 记录在端口上收到的消息

c# - 无法通过 IIS 访问 aspx 页面

c# - 如何同步调用异步(await)方法?

c++ - 为什么我的网络 TCP/UDP 实现不起作用?

java - 客户端-服务器套接字

python - 通过 TCP/UDP 发送一个大数据包和许多小数据包?