2010-12-17 98 views
1

我正在寻找一个库/框架/ codesnippet,它可以帮助我构建一个非常简单的服务器/客户端。两者都应该是可移植的(linux/win/mac)。在C++中实现一个简单的服务器/客户端概念

一张图片表示,更多的则千言万语这样: alt text

服务器应该能够单独指出错误的客户。 我在找什么只是如何做转让的提示。我对C++以外的语言有一点经验,创建一个服务器可以存储连接到数组中的所有客户端,并且一旦你指向正确的方向就与它们中的每一个进行交互。

我对C++的看法是RakNet和Boost.Asio。 我不想使用RakNet,因为我可能会在某个时候出售应用程序(你永远不知道),而Boost.Asio似乎很难让我理解并向低级别方向发展。我真正需要的只是一个简单的发送/接收功能。 json将由我处理(我已经看过jsoncpp)。一条消息的最大长度为2048字节。

任何建议/提示/帮助看什么/使用什么? 我真的很想找一些简单的东西,而不是那么低层次的使用,因为我不需要低级别的功能。

在此先感谢,
罗宾。

+0

虽然带有文字的图片没有多说这些单词。 – Default 2010-12-17 17:28:40

+0

这是功课吗? – 2010-12-17 18:33:08

+0

不,它不是。我想和我的一个朋友一起开发一个小型游戏(只是为了学习关于opengl的东西),如果我们能够添加网络支持,我们会觉得很酷。 – Robin 2010-12-17 18:36:45

回答

3

你以前做过网络编程吗?它在C中非常简单,而且你想要的东西可以在几个小时内实现。当我还是学生的时候,我使用下面的这个手册来完成我的作业。

http://shoe.bocks.com/net/

刚才看了这个,你是好去。它真的不是很难。

祝你好运!

+0

我正在寻找跨平台解决方案。 – Robin 2010-12-17 16:52:14

+0

@Robin:我仍然建议你阅读一篇精心编写的非便携式解决方案,以熟悉网络编程。网络套接字在不同平台上具有几乎相同的接口,使您可以轻松地连接**客户端。然而,可扩展的网络服务器体系结构从一个平台到另一个平台有很多**。 – 2010-12-17 17:37:13

+0

安德烈说,他们几乎是一样的。将它移植到各种平台上,它在这个级别上是免费的。我不知道你想要开发什么,但如果你不介意研究java,那么它更容易和它的平台无关。 – zhengtonic 2010-12-17 18:08:26

1

由于跨平台和易于使用都是要求,我会推荐Qt。它非常简单,可靠并且跨平台。

http://qt.nokia.com/products/developer-tools/

它配备了大量的样本,包括13个网络样本(看看螺纹服务器的教程,我相信这只是你以后)的。

+0

是的,但是在这种情况下使用QT有点夸张,如果你打算在商业上使用它,许可将是一个问题。 LGPL比人们想象的要棘手。 – zhengtonic 2010-12-17 18:11:01

+0

@ zhengtonic - 你可以坚持LGPL。只有在您打算修改Qt源代码并保持更改关闭源时,才需要商业许可证,否则您可以使用Qt的LGPL许可证创建自己的商业封闭源代码应用程序。就膨胀起来,我非常不同意,Qt是模块化的,所以你应该只需要libqtcore和libqtnetwork。这对于跨平台来说确实是一个很小的代价。这不像你会添加虚拟机或类似的东西,它仍然是一个本地应用程序 – Raphael 2010-12-17 18:48:40