在C++中,netinet
和netdb
是C語言中的網絡庫,在C++中可以使用<sys/socket.h>
和<netdb.h>
頭文件來包含這些庫。
以下是一個簡單的示例代碼,演示如何使用<sys/socket.h>
和<netdb.h>
頭文件來使用網絡庫:
#include <iostream>#include <sys/socket.h>#include <netdb.h>int main() {// 創建一個socketint serverSocket = socket(AF_INET, SOCK_STREAM, 0);if (serverSocket == -1) {std::cout << "Error creating socket." << std::endl;return 1;}// 獲取IP地址struct hostent* host = gethostbyname("www.example.com");if (host == nullptr) {std::cout << "Error retrieving IP address." << std::endl;return 1;}struct in_addr** addressList = (struct in_addr**)host->h_addr_list;std::string ipAddress = inet_ntoa(*addressList[0]);std::cout << "IP address: " << ipAddress << std::endl;// 連接到服務器struct sockaddr_in serverAddress;serverAddress.sin_family = AF_INET;serverAddress.sin_port = htons(80);if (inet_pton(AF_INET, ipAddress.c_str(), &(serverAddress.sin_addr)) <= 0) {std::cout << "Invalid IP address." << std::endl;return 1;}if (connect(serverSocket, (struct sockaddr*)&serverAddress, sizeof(serverAddress)) < 0) {std::cout << "Error connecting to server." << std::endl;return 1;}// 發送數據std::string message = "GET / HTTP/1.1\r\nHost: www.example.com\r\n\r\n";if (send(serverSocket, message.c_str(), message.length(), 0) < 0) {std::cout << "Error sending data." << std::endl;return 1;}// 接收服務器響應char buffer[4096];std::string response;while (true) {memset(buffer, 0, sizeof(buffer));int bytesRead = recv(serverSocket, buffer, sizeof(buffer) - 1, 0);if (bytesRead <= 0) {break;}response += buffer;}// 關閉socketclose(serverSocket);// 打印服務器響應std::cout << response << std::endl;return 0;}
這個示例代碼創建一個socket對象,然后使用gethostbyname
函數獲取www.example.com
的IP地址,然后使用connect
函數連接到服務器,然后發送HTTP請求并接收服務器的響應,最后關閉socket并打印響應。
注意,這只是一個簡單的示例,實際使用網絡庫可能需要更多的錯誤處理和邏輯。
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
股指交割日大盤必跌嗎?不一定。股指交割雖然導致了部分的風險由股指期貨轉移到了股票,但是不一定導致股票大盤必然下跌,股票指數的下跌和上漲是很綜合性的因素。交割日造成股票大盤下跌的因素主要是,拋售引起的做空,紛紛都要賣出交割,這樣股指會有所下跌,加上交割日那幾天做空的人比較多,股指的震蕩比較大。股指交割日對股市利空還是利好?1.根據過往股指交割日走勢來看,股指期貨或期權的交割日一般對股市的影響不大,反...
(相關資料圖)哈嘍小伙伴們 ,今天給大家科普一個小知識。在日常生活中我們或多或少的都會接觸到秦昊爬山是什么梗方面的一些說法,有的小伙伴還不是很了解,今天就給大家詳細的介紹一下關于秦昊爬山是什么梗的相關內容。跟人一起爬山,之后把對方從山頂推下去。秦昊爬山梗出自電視劇《隱秘的角落》?!峨[秘的角落》是一部社會懸疑題材網劇,于2020年6月16日在愛奇藝播出。該劇改編自紫金陳的推理小說《壞小孩》,主要講述...
新手怎么小額理財賺錢?新手可以通過以下小額理財來賺錢:1、基金定投基金定投是指在固定的時間以固定的金額投資到指定的開放式基金中,投資者可以選擇每周,或者每月定投幾百元的基金,以時間來換取收益。2、可轉債可轉債與國債不同,它一般是上市公司為了融資所發行的一種債券,具有債券和股票雙重屬性,投資者在可轉債發行時,可以進行申購操作,一般中簽一手為1000元,其門檻較低,風險,相對于股票來說低得多,大部分可...