2012-03-26 46 views
1

我想用C++學習網絡編程,可移植的方式(不是堅持任何特定的操作系統)。我在my previous question問了一個好的便攜式網絡庫和專家(SO用戶)建議的Boost :: Asio和POCO。cURL是一個網絡庫嗎?

最近我偶然發現了cURL(我聽說過它,但忘記了有類似的東西)。我知道它是一個多協議文件傳輸庫,但不知道網絡庫可以做什麼?

我的問題是什麼是cURL的用法?它是另一個網絡庫嗎?如果是的話,這不好嗎?爲什麼沒有人建議Curl?如果不是,那麼何時使用它與Boost :: Asio和POCO等網絡庫相比?

+0

有人倒了我先前的問題,有什麼理由? – questions 2012-03-26 05:52:54

回答

2

cURL是主要是用於處理URI/URL的。網址主要用於聯網,但至少在理論上,這或多或少與cURL相關。儘管這樣做可能並不常見,但如果您編寫的程序只處理本地文件,但是使用file://網址,則cURL可以很好地處理這些本地URL。

Boost ASIO有網絡基礎設施,但沒有直接與網址一起工作。 Boost的其他部分包括像字符串處理這樣的東西,這可能會在建立URI/URL處理時很方便,但據我所知,操作URIs/URLs並不是特定的東西。

POCO是一個全面的網絡庫,它也包含URI處理,但並不專門針對它(僅限於任何地方)。

+0

所以我們可以說cURL處於更高層次,另一個抽象層次,提供了URL特定的網絡,而網絡庫(Boost :: asio和POCO)是完全成熟的庫,可以用於任何網絡目的,包括提供的通過cURL? – questions 2012-03-26 06:02:51

+0

@questions:是的,我會說這是相當準確的。 – 2012-03-26 06:05:09

+0

你能否給我一些真實的場景,你可以用cURL代替網絡庫,反之亦然? – questions 2012-03-26 06:12:59

0

cURL只允許您向URI發出請求。它不會幫助您運行服務器或執行低級網絡編程。

+1

@僅限於Quentin的HTTP?這是我從他們的網站獲得的支持DICT,FILE,FTP,FTPS,Gopher,HTTP,HTTPS,IMAP,IMAPS,LDAP,LDAPS,POP3,POP3S,RTMP,RTSP,SCP,SFTP,SMTP,SMTPS,Telnet和TFTP。 curl支持SSL證書,HTTP POST,HTTP PUT,FTP上傳,基於HTTP表單的上傳,代理,cookies,用戶名+密碼驗證(Basic,Digest,NTLM,Negotiate,kerberos ...),文件傳輸恢復,代理隧道和a大量其他有用的技巧。 ' – questions 2012-03-26 05:48:21