Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.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++ 操作系统服务与c++;_C++_Linux_Windows_Service_Communication - Fatal编程技术网

C++ 操作系统服务与c++;

C++ 操作系统服务与c++;,c++,linux,windows,service,communication,C++,Linux,Windows,Service,Communication,我正在开发2个Windows服务,其中一个将向另一个发送图片和word文件,另一个服务将给出字符串答案。服务在同一台计算机中 我还将开发同一程序的Linux版本 在Linux和Windows中,哪种方式最适合服务之间的通信 顺便说一下,我用C++开发了这些服务。 < P>我建议在C++套接字上阅读。您可能希望使用TCP套接字,因为您希望确保传输的数据正确无误 请尝试签出以下链接: 您应该搜索。 进程间通信有很多可能性。因为你对你的问题和要求不是很明确,但我建议你看看 只要您确定两个服务都在同一

我正在开发2个Windows服务,其中一个将向另一个发送图片和word文件,另一个服务将给出字符串答案。服务在同一台计算机中

我还将开发同一程序的Linux版本

在Linux和Windows中,哪种方式最适合服务之间的通信


顺便说一下,我用C++开发了这些服务。

< P>我建议在C++套接字上阅读。您可能希望使用TCP套接字,因为您希望确保传输的数据正确无误

请尝试签出以下链接:

您应该搜索。
进程间通信有很多可能性。因为你对你的问题和要求不是很明确,但我建议你看看

只要您确定两个服务都在同一台机器上运行,这就可以了。
如果您想切换到分布式方法,您需要一些不同的东西。

喜欢,或者。仅提及一些可能性。

您的任务有不同的选项:

  • 网络。在您的服务之间建立TCP连接,服务作为客户端请求,服务作为服务器应答。可以使用Boost.Asio或任何其他便携式网络库实现跨平台解决方案
  • 共享内存。您可以使用共享内存实现进程间通信。跨平台库:Boost.Interprocess
  • 管道。我不知道这个跨平台库

  • 我建议使用TCP通信作为更灵活的解决方案。

    不必跨平台。我可以实现不同的程序,它们在Linux和Windows上做相同的事情。我想知道最快的解决方案。最快的解决方案是实现一次,而不是针对不同平台的不同程序。这就是我建议使用跨平台库的原因。实际上,如果您以前从未使用过Boost.Asio,那么学习Boost.Asio可能需要一些时间,但是本机套接字级别的网络在任何情况下都不简单。