小编qui*_*ver的帖子

C#套接字与管道

目前我正在开发Windows上的多进程桌面应用程序.此应用程序将是一个收缩包装的应用程序,它将部署在世界各地的客户端计算机上.虽然我们可以为机器提供广泛的规格 - 例如带有.Net 4.0 CF的Windows XP SP3,但我们无法控制它们,我们也无法对其配置过于具体 - 例如我们无法指定机器必须具有支持cuda 1.4的图形处理器等等

其中一些进程是托管的(.Net 4.0),其他进程是非托管的(C++ Win32).这些过程需要共享数据.我迄今评估的选项是

  • Tcp套接字
  • 命名管道

管道看起来好一点,但是对于我们的需求 - 两者的性能都是可以接受的.套接字为我们提供了跨越机器(和操作系统 - 我们最终支持非Microsoft操作系统)边界的灵活性,因此我们倾向于使用套接字.

但是 - 我主要担心的是 - 如果我们使用Tcp套接字 - 我们是否可能遇到防火墙问题?有没有其他人部署使用TCP进行IPC和经历过问题的桌面应用程序/程序?如果是这样 - 什么样的?

我知道这是一个相当开放的问题,我很乐意改写.但我真的想知道我们可能会遇到什么样的潜在问题.

编辑:为了更轻松 - 我们只运送一些POD,整数,浮点数和字符串.我们构建了一个抽象层,提供了两种范例 - 请求/响应和订阅.传输层已被抽象出来,目前我们有两个实现 - 基于管道和基于TCP.

c# sockets winapi network-programming named-pipes

11
推荐指数
1
解决办法
6280
查看次数

标签 统计

c# ×1

named-pipes ×1

network-programming ×1

sockets ×1

winapi ×1