gpt4 book ai didi

c - C:发送GET请求,但Wireshark没有捕获任何内容

转载 作者:行者123 更新时间:2023-12-03 11:51:52 26 4
gpt4 key购买 nike

我是C语言的新手,也是wireshark的新手。所以我试图将http GET请求发送到localhost并同时运行wireshark。但是似乎我做错了,因为wireshark没有显示任何标题。所以这是我的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我以root身份运行wireshark。当我 try catch 其他网站数据包(例如 my friends website)时,它工作正常。我还有一个问题。他是否在回答网络服务器向我发送的只是一个文本文件的文本,例如以标题开头的文本文件,然后是body(html)?对不起,如果我的问题听起来很愚蠢。谢谢

最佳答案

您的问题并不傻。在将数据包发送到本地主机时,您只是没有使用任何真正的网络。 Wireshark很可能不会在您的系统上捕获它们。
阅读此:https://wiki.wireshark.org/CaptureSetup/Loopback

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

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

关于c - C:发送GET请求,但Wireshark没有捕获任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32713330/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com