从C#中的Windows.NET程序到C++中的Linux程序之间的TCP

TCP between Windows .NET program in C# to Linux program in C++

本文关键字:中的 程序 Linux 之间 TCP C++ Windows NET      更新时间:2023-10-16

我是计算机网络和将数据从一台计算机发送到另一台计算机的新手。目前,我的任务是将C#Kinect SDK程序与Linux C++Opengl/Covise程序集成。C++程序将接收并使用Kinect生成的输出。

尽管它们是在不同的平台和语言上编写的,但是否有可能通过TCP、UDP或其他任何方式进行通信?还是最好用OpenNI扩展C++程序?

目前安装Opencover/Covise对我来说是一大痛苦。

当然。当谈到网络时,服务器和客户端用什么编程语言编写并不重要。你真的认为多人flash游戏有在后端运行的flash服务器吗?

你可以在网上找到一堆关于如何编写服务器和客户端、如何打开端口和监听连接、使用套接字的文章。等等

我对计算机网络和将数据从一台计算机发送到另一台计算机的主题很陌生。目前,我的任务是将C#Kinect SDK程序与Linux C++Opengl/Covise程序集成。

很酷,祝贺你学习新东西。

尽管它们是在不同的平台和语言上编写的,但是否有可能通过TCP、UDP或其他任何方式进行通信?

这将是我们达成一致的"协议"的目的。就像握手一样。我们都同意应该是这样,所以就是这样。与接电话和打招呼不同,打招呼的原因是在消化下一段信息(真相(之前给另一只耳朵几个音节,以识别你的声音的音调。(这也是我们在网络上握手的原因——确定你正在和某人交谈,然后开始交谈。(

还是最好用OpenNI扩展C++程序?

如果这是作业的要求,那么就这样做,但我不认为添加到另一个库中一定是的最佳答案。我会坚持简单的任务。

您肯定可以通过网络(TCP/UDP(跨语言和平台进行通信。您需要担心的第一件事是如何序列化和反序列化正在通信的数据或消息。例如,一个平台可以按小端字节顺序存储整数,另一个平台可能使用大端字节顺序(也称为网络字节顺序(。此外,复杂的数据结构或对象需要序列化,以便其他平台可以轻松地对其进行解释,例如,您不能只使用C#中的System.Serialization,并期望它在另一端易于解码。有许多用于跨平台通信的工具包或API,如Swift、Protocol Buffers、SOAP、POX/REST等。这些工具包或API都有各种权衡,可能或多或少适合您的特定应用程序。