Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在C+中实现简单的服务器/客户机概念+;_C++_Sockets_Network Programming_Cross Platform - Fatal编程技术网

C++ 在C+中实现简单的服务器/客户机概念+;

C++ 在C+中实现简单的服务器/客户机概念+;,c++,sockets,network-programming,cross-platform,C++,Sockets,Network Programming,Cross Platform,我正在搜索一个库/框架/代码片段,它可以帮助我构建一个非常简单的服务器/客户机。两者都应该是可移植的(linux/win/mac) 一张图片上写着千言万语,所以: 服务器应该能够分离不同的客户端。 我要找的只是如何进行转移的提示。对于C++以外的语言,我几乎没有什么经验,创建一个存储所有连接在数组中的客户端并与它们中的每一个进行交互的服务器都是很容易的,一旦您指向正确的方向。 我研究C++的是RakNet和BooS.asIO。 我不想使用RakNet,因为我可能会在某个时候(你永远不知道)销售

我正在搜索一个库/框架/代码片段,它可以帮助我构建一个非常简单的服务器/客户机。两者都应该是可移植的(linux/win/mac)

一张图片上写着千言万语,所以:

服务器应该能够分离不同的客户端。 我要找的只是如何进行转移的提示。对于C++以外的语言,我几乎没有什么经验,创建一个存储所有连接在数组中的客户端并与它们中的每一个进行交互的服务器都是很容易的,一旦您指向正确的方向。 我研究C++的是RakNet和BooS.asIO。 我不想使用RakNet,因为我可能会在某个时候(你永远不知道)销售该应用程序并提高性能。我真正需要的是一个简单的发送/接收功能。 json将由我处理(我已经研究过jsoncpp)。一条消息的最大长度为2048字节

有什么建议/提示/帮助吗? 我真的在寻找一些简单的东西,而不是太低层次的使用,因为我不需要低层次的功能

提前感谢,

罗宾。

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

读了这篇文章,你就可以走了。这真的不是很难


祝你好运

您以前做过网络编程吗?这在C语言中非常简单,您想要的东西可以在几个小时内实现。当我还是一名学生的时候,我用下面这本手册完成了我的作业

读了这篇文章,你就可以走了。这真的不是很难


祝你好运

我喜欢。

我喜欢。

因为跨平台和易于使用都是我推荐的要求。它非常简单、可靠、跨平台


它附带了很多示例,包括13个网络示例(请看一下线程服务器教程,我相信这正是您想要的)。

因为跨平台和易于使用都是我推荐的要求。它非常简单、可靠、跨平台


它附带了很多示例,包括13个网络示例(请看一看线程服务器教程,我相信这正是您想要的)。

我正在寻找一个跨平台的解决方案。@Robin:我仍然建议您阅读一个编写良好的非可移植解决方案,以熟悉网络编程。网络套接字在不同平台上具有几乎相同的接口,允许您轻松地移植客户端。然而,可扩展的网络服务器架构在不同的平台上有很大的不同。安德烈说,它们几乎是一样的。将其移植到各种平台上,在这一级别上不会有任何痛苦。我不知道您到底想开发什么,但如果您不介意研究java,它在java中更容易,而且与平台无关。我正在寻找一种跨平台的解决方案。@Robin:我仍然建议您阅读一种编写良好的非可移植解决方案,以熟悉网络编程。网络套接字在不同平台上具有几乎相同的接口,允许您轻松地移植客户端。然而,可扩展的网络服务器架构在不同的平台上有很大的不同。安德烈说,它们几乎是一样的。将其移植到各种平台上,在这一级别上不会有任何痛苦。我不知道你到底想开发什么,但如果你不介意研究java,它在java中更容易,而且与平台无关。尽管带文本的图片所表达的内容并不比这些文字多。不,它不是。我想和我的一个朋友一起开发一个小游戏(只是为了学习opengl的知识),我们认为如果我们可以添加网络支持,那会很酷。虽然带文本的图片只会说这些单词。不,不会。我想和我的一个朋友一起开发一个小游戏(只是为了学习opengl的知识),我们认为如果我们可以添加网络支持会很酷。是的,但是在这种情况下使用QT有点臃肿,如果你打算在商业上使用它,imho和许可将是一个问题。LGPL比人们想象的要复杂。@zhengtonic-你可以坚持使用LGPL。只有当您计划修改Qt的源代码并保持更改为封闭源代码时,才需要商业许可证,否则您可以使用Qt的LGPL许可证创建自己的商业封闭源代码应用程序。就膨胀而言,我不同意,Qt是模块化的,所以您应该只需要libqtcore和libqtnetwork。这对于跨平台来说是一个很小的代价。这并不是说你要添加一个虚拟机或类似的东西,它仍然是一个本机应用程序,但是在这种情况下使用QT会有点膨胀,如果你打算在商业上使用它,imho和许可将是一个问题。LGPL比人们想象的要复杂。@zhengtonic-你可以坚持使用LGPL。只有当您计划修改Qt的源代码并保持更改为封闭源代码时,才需要商业许可证,否则您可以使用Qt的LGPL许可证创建自己的商业封闭源代码应用程序。就膨胀而言,我不同意,Qt是模块化的,所以您应该只需要libqtcore和libqtnetwork。这对于跨平台来说是一个很小的代价。这不像是要添加虚拟机或类似的东西,它仍然是本机应用程序