2016-04-25 102 views
0

我对网络编程颇为陌生,我想用C++创建一个简单的非阻塞TCP服务器类。搜索后,我看到我可以使用Berkeley Sockets API来实现它,或者我可以使用外部库,如Boost.AsioPOCO伯克利套接字API和C++网络编程库

我的问题是,在Berkeley套接字API中使用这些库有什么优缺点?

编辑:更具体地说,我不是在寻找什么更容易处理,因为这是我个人的观点。我正在寻找表现等事实?处理多线程?也可能是来自expirienced程序员的其他方面。

+1

一个人的职业往往是另一个人的骗子。 – user4581301

回答

1

如果您想从C++使用C,请使用BSAPI。我不建议将它作为工作习惯,但它可以帮助您更好地掌握tcp/ip/c-language的性质。缺点是你必须...写C或搜索包装库。或者写你自己的包装。

如果您想用C++编写代码(使用C++),请使用Boost :: Asio/POCO。

如果您需要快速编码,请使用更多高级库。

这里的另一个答案,但: Socket API or library for C++?

+3

我同意这句话:“如果需要快速编码,请使用更多高级库”,但需要注意:如果您不知道如何使用高级库,那么您可能不会获得大大缩短了编码时间。 – user4581301

+0

虽然好的高级库通常可以更快地完成常见任务,并且可以更安全地执行低级别任务。 – strangeqargo

+1

绝对不会争辩。踢球者是很好的图书馆。 POCO我从未使用过。 ASIO是相当不错的,但如果你在伯克利插座和C上被提出或者什么都不知道,那么奇怪的因素是太棒了。真正的美丽是在你第三次使用图书馆的时候出现的。 – user4581301