簡體   English   中英

inet_ntop() 不打印 url

[英]inet_ntop() not printing url

我相信 inet_ntop() 應該將 struct sockaddr 地址轉換為字符串,目前我有:

 sin_size = sizeof their_addr;

 new_fd = accept(sockfd, (struct sockaddr *)&their_addr, &sin_size);

 inet_ntop(AF_INET6, &(((struct sockaddr_in6 *)&their_addr)->sin6_addr), s, sizeof s);

 printf("server: got connection from %s\n", s);

如果我從 http://localhost:3490/thispage.html 建立連接,我希望代碼打印出 http://localhost:3490/thispage.html 但它打印出來的只是“server: got connection from :: 1”。

我不明白為什么會發生這種情況 - 基本上我想要做的是從 url 獲取 html 頁面名稱,我想從返回的字符串中提取它,但該字符串沒有返回我預期的內容。

inet_ntop函數采用包含 IP 地址的結構並將其轉換為字符串格式。 它對 URL 一無所知。

accept返回時,此時發生的所有事情就是建立了 TCP 連接,而their_addr包含連接的端點的 IP 地址,在本例中為 ::1,這就是打印的內容。

您需要進一步閱讀可能包含 HTTP 的套接字,以了解調用的 URL。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM