在Windows中C++开发一个P2P网络项目,该项目应该在Linux中工作



我把这个项目作为研究生课程要求的一部分。我需要开发一个P2P程序(有一个微型BitTorrent协议(。我以前在 .NET 中使用过网络应用程序,但在 C++/Java 中没有。但是,我确实了解C++中的套接字以及它们的工作原理。

我面临的问题是:TA要求程序最终"在Linux中工作"。我以前甚至几乎没有使用过Linux,很自然地,我担心这一点。

有没有办法让我使用 VS 来开发可以在 Linux 上运行的程序?据我所知,我可以使用Qt开发"跨平台"应用程序,对吗?另外,我认为他们那里还有一个我可以使用的网络包。

有什么建议吗?我会很感激一些...


为什么不使用 Mono 在 Linux 上使用 C#?坚持你所知道的 - 你将节省大量的时间和大量的时间。库重用是一项额外的奖励:)

编辑:当我需要进行跨平台C++开发时,这对我有很大帮助。

有很多

网络C++库可以跨平台。Qt网络就是其中之一,网络只是Qt框架的一小部分,你可以尝试使用boost::asio,这也是一个优秀的跨平台网络库。

但是,当您尝试使用通常将编译器编译器编译为本机代码的C++时,您必须构建或交叉编译到目标计算机,这意味着对于不同的操作系统,您必须编译代码以生成该操作系统二进制文件。

另一种选择是使用Java或Mono/.net,但我认为在您的问题中,您更喜欢使用C ++。

编辑

您的目标计算机不需要安装 Qt 或 Boost。 您可以静态构建程序,也可以将 .so 文件与程序一起复制。

MinGW和Cygwin"实际上"是Windows的GCC端口。Java是跨平台的。如果你想让你的项目快速完成,Java可能是你的选择,很多示例代码可以在网上找到。

Qt

是另一个不错的选择,Qt网络确实有一个非常好的例子,叫做torrent,它是一个工作位torrent客户端。

都很方便,你只需要时间弄清楚。

我直言,下载Qt,并从这个例子开始:

http://doc.qt.io/qt-5/qtnetwork-torrent-example.html

在窗口端,你仍然可以在Visual Studio中进行开发(至少在窗口端(:

http://doc.qt.io/vs-addin/

Qt Creator是一个很棒的IDE。 它是为使用Qt库而构建的。

网络方面非常简单。

图形选项是Widgets,QML或Widgets/GraphicsView或其他第三方库。

如果你想把游戏放在手机上,QML就是你要走的路。 否则,Widgets/GraphicsView可以处理大多数为桌面编写的2D游戏。

希望有帮助。

最新更新