通过网络连接从c#发送数据到非托管c ++

时间:2014-08-01 12:15:53

标签: c++ .net c#-4.0 network-programming

我有一个c#dll需要通过网络向非托管c ++进程发送一个非常复杂的对象。我知道有很多方法可以做到这一点,但想知道是否有人可以推荐最合适的。需要注意的重点:

  1. 如果c ++进程未收到数据,则通知c#进程至关重要。我希望尽可能可靠地传输数据。
  2. 不幸的是,我也面临着尽快交付数据包的压力,因此最终需要在可靠性和性能之间进行一些权衡。
  3. 表示数据的c#对象可能会更改。这是我们无法控制的第三方对象。理想情况下,我需要在c ++过程中使用一些动态机制来处理这些更改,同时尽可能减少影响。最糟糕的情况是,如果我们必须在每次对象数据发生变化时重新编译代码。
  4. 我想尽可能避免使用第三方库。

  5. 非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

据我了解您的问题,您可能是指“网络”的LAN或WL​​AN。所以,我建议双方都使用UDP / IP。对于“如果c ++进程没有收到数据,通知c#进程是至关重要的”,你需要手动处理它(例如,通过每接收一个数据包或一堆数据包的确认数据包)。

有很多样本可通过互联网获取UDP / IP unde'套接字编程': 像这里一样:http://www.abc.se/~m6695/udp.html