数据丢失两台机器之间的安全通信

时间:2015-06-17 12:29:06

标签: networking inter-process-communicat

我在两台独立的(windows)机器上运行了两个应用程序。我需要两个应用程序之间的强大通信解决方案,它可以容忍短通信信道断开(例如重启接收器应用程序)而不会丢失数据。我可以提出明显的解决方案:

  • 在建立连接时通过TCP套接字进行通信,并在断开连接时缓冲到内存或文件。
  • 通过其中一台机器上的文件进行通信,并使用文件传输协议(例如smb)从另一台计算机进行访问。使用文件来指示文件读/写位置。

还有其他选择吗?它们的优点/缺点是什么?是否有任何现有的C / C ++库实现解决方案?

1 个答案:

答案 0 :(得分:0)

当然,您首选的选择应该是TCP。因为TCP可以保证接收到的应用程序出现的任何内容。通常,任何面向连接的协议都可以,而TCP在这里是最明显的选择。

在您的第二个选项中 - 似乎有很多移动部件(例如,发送文件 - 收到应用程序新文件的一些通知或应用程序轮询文件更改然后读取该文件等)和其中一个出错是不太可能的。我不确定SMB使用的是什么 - 但如果SMB使用TCP,那么你最好只使用TCP。所以使用SMB的文件肯定不是首选。 IMO。