2009-08-01 30 views
2

我想用C++做一些网络套接字编程,并找到了C++ Sockets library如何使用C++套接字库

首先,这是一个很好的方式去C + +?通常在C中,我会使用一些beej在his tutorial中描述的东西。

二,如何编译网站上给出的例子?我无法从他们的安装/配置指南中找到它。所以我把tar.gz下载到我的Linux机器上,然后呢?

有一个具体的例子,我该如何编译和运行DisplaySocket example

谢谢。


编辑:谢谢你的快速答案。尽管如此。我没有真正关注“理解”网络编程,因为我认为我已经做得很好。我想知道是否有什么特别要利用C++,并且 - 如果“C++套接字库”是一个不错的选择 - 如何使用它。

+1

哇,该网站是webring的一部分。这很不错。 – Eric 2009-08-01 11:25:08

+0

“我将tar.gz下载到我的Linux机器上,然后看起来像是将它解压到任何你喜欢的地方,可能会修改makefile和配置文件(有关运行make的说明:http://www.alhem。 net/Sockets/tutorial/install.html,“下一页”页面上的配置文件)。然后运行make。然后将客户端标题所在的目录添加到代码的包含路径中,并将该目录的生成目录包含路径。然后编译你的代码。 “你的代码”可能就是这样的例子。据我所知,这些例子已经制定了目标 - 如果是我编写makefile文件,他们会... – 2009-08-01 22:00:17

回答

9

这不是“C++套接字库”,它是“一个”C++套接字库。 Boost.asio有另一个(http://www.boost.org/doc/libs/1_39_0/doc/html/boost_asio.html)。因为我不能真正帮助你解决你的问题 - 我从来没有编译过你问过的代码,所以我不知道在什么时候你可能会因为某个问题而绊倒。)。

3

使用基本套接字API(BSD或WinSock)而不是套接字库可以更好地理解网络编程,该套接字库隐藏了有关套接字及其行为的大部分复杂性。

+1

在原始套接字API上花费超过5分钟是浪费时间。所有更多的东西都会教你,每个实现都有一些小错误,任何一个库都会变得无关紧要。 “网络编程”最好从一个模式控制和事件处理反转的库中学习。请参阅施密特的C++网络编程书籍。 – keraba 2009-08-01 15:14:41

+0

哪个bug例如? – Indy9000 2009-08-01 15:25:15

0

我喜欢在使用C++编写网络代码时使用ACE networking library。我认为它做了一个很好的工作,将一些错综复杂的细节抽象出来,这使网络编码变得很痛苦,但并没有达到隐藏发生了什么的地步。它还具有通常为任何项目所需的线程和消息传递的功能。

0

我会继续对boost :: asio进行投票,因为它封装了当前首选模型的控制模型的反转,并且似乎是标准绑定。要了解文档没有告诉你的是什么,谷歌道格拉斯施密特和他的书。