Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.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
C++ 哪种技术比Win32命名管道或WinSock 2更好?_C++_Winapi_Visual C++_Winsock_Named Pipes - Fatal编程技术网

C++ 哪种技术比Win32命名管道或WinSock 2更好?

C++ 哪种技术比Win32命名管道或WinSock 2更好?,c++,winapi,visual-c++,winsock,named-pipes,C++,Winapi,Visual C++,Winsock,Named Pipes,我有一个Visual C/C++程序,它将通过局域网(LAN)与其他程序(本地和非本地)通信。以前我使用win32内存映射文件/事件进行本地通信。现在我想扩展我的程序以支持网络通信 由于MMF不支持网络进程间通信(术语应为进程内Com”),很明显,为了通过本地网络传输数据,我必须使用Win32命名管道或WinSock2机制 在这里,我的唯一意图是仅构建网络内进程通信,因此哪种机制在以下因素方面表现更好: 单服务器多客户端-(双工->从两端发送和接收) 通过慢速局域网传输数据 服务器是基本的Vi

我有一个Visual C/C++程序,它将通过局域网(LAN)与其他程序(本地和非本地)通信。以前我使用win32内存映射文件/事件进行本地通信。现在我想扩展我的程序以支持网络通信

由于MMF不支持网络进程间通信(术语应为进程内Com”),很明显,为了通过本地网络传输数据,我必须使用Win32命名管道或WinSock2机制

在这里,我的唯一意图是仅构建网络内进程通信,因此哪种机制在以下因素方面表现更好:

  • 单服务器多客户端-(双工->从两端发送和接收)
  • 通过慢速局域网传输数据
  • 服务器是基本的Visual C/C++程序,客户端是由另一个进程加载的DLL,因此功能应该是轻量级的
  • 传输速度(数据应以更高的频率在进程之间传输)
应该实施哪种机制?命名管道还是WinScoket2?
谢谢。

本地主机之外的命名管道仍然通过TCP/IP堆栈。我无法想象一旦你跨过这个门槛,性能会变得更好,而且有很多途径认为它会变得更糟(即tcp/ip上的管道开销)。@WhozCraig你更喜欢WinSock?WinSock是他们对为Windows提供套接字的库的称呼,没有WinSock,Windows中就没有tcp/ip。也就是说,命名管道将使用WinSock处理网络上的流量,它别无选择。命名管道为通信增加了令人难以置信的复杂性。必须在主机上启用文件和打印机共享才能访问,Windows防火墙必须允许连接,并且您需要访问服务器,这可能需要使用Windows凭据并正确配置整个服务器。我会避免使用它。@Havenard你喜欢什么?关于性能?Winsock。命名管道保存服务器上的所有数据,并且可能仍然通过TCP使用NetBEUI。相当古老的东西,可以追溯到盖茨相信互联网之前。