为什么最好使用套接字(或与OS一起打包的库)而不是第三方库(如libcurl)。
例如,我一直在关注一些教程like this one on Winsock来尝试访问一个http网站,似乎它可以做我需要做的一切,但libcurl也可以做这些事情。是否有任何理由使用第三方库而不是操作系统可以提供的内容(我正在考虑执行速度,可靠性等因素)。我知道可移植性是一个问题,并且可能易于使用,但还有其他因素可能使它更适合吗?
答案 0 :(得分:1)
HTTP是一种复杂的协议,大多数其他重要的网络协议也是如此。如果您尝试使用本机的低级套接字接口自己实现它,那么您很可能会错过一些重要的细节(例如分块编码)。如果有一个实现它的高级库,那么你几乎总是更好地使用它。
性能不太可能存在显着差异。网络比CPU慢几个数量级,因此瓶颈在于数据通信,而不是处理代码。