C:发送 GET 请求但 wireshark 没有捕获任何东西

C: sending GET requests but wireshark doesnt catch anything

我是 C 的新手,也是 wireshark。所以我正在尝试向本地主机发送 http GET 请求并同时发送 运行 wireshark。但似乎我做错了什么,因为 wireshark 没有显示任何 headers。所以这是我的 C 代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h> 
#include <sys/socket.h>
#include <pthread.h>
#include <netinet/in.h>
#include <errno.h>
#include <string.h>

int main(int argc, char *argv[]) 
{
 int yes = 1;
 char buffer[1024];

 int newsockfd, portno, number, recv_length, sockfd;
 socklen_t clilen;
 struct sockaddr_in serv_addr, cli_addr;

 if (sockfd < 0) 
    error("ERROR opening socket");
 bzero((char *) &serv_addr, sizeof(serv_addr));

 serv_addr.sin_family = AF_INET;
 serv_addr.sin_addr.s_addr = 0;
 serv_addr.sin_port = htons(80);

 sockfd = socket(AF_INET, SOCK_STREAM, 0);

 connect(sockfd,(struct sockaddr *) &serv_addr,sizeof(serv_addr));
 number = send(sockfd, "GET /1/ HTTP/1.0\r\n\r\n", strlen("GET /1/ HTTP/1.0\r\n\r\n"), 0);

 recv_length = recv(sockfd, buffer, 1024, 0);
 printf("%s\n", buffer);
}

(我使用了一些我不使用但不注意的额外变量,/1/ 只是我的网站)这个程序打印出来this I'm running wireshark as root. When I try to catch another websites packets (for example my friends website) 它工作正常。我还有另一个 question.Is 他的回应是网络服务器只给我发回一个文本,比如一个以 headers 开头然后是 body(html) 的文本文件?对不起,如果我的问题听起来很愚蠢。谢谢

你的问题不傻。在向本地主机发送数据包时,您只是没有使用任何 real 网络。 wireshark 很可能不会在您的系统上捕获它们。 读这个:https://wiki.wireshark.org/CaptureSetup/Loopback

尝试将它们发送到您的外部 IP 或其他主机。

是的,对 GET 请求的响应只是标准格式的文本:http://www.tcpipguide.com/free/t_HTTPResponseMessageFormat.htm