我把这个项目作为研究生课程要求的一部分。我需要开发一个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游戏。
希望有帮助。