int(11) 输入9999999999 报错BAD_REQUEST

博客指出数组最大长度为int的最大值,即2147483647,这是信息技术领域关于数组长度限制的关键信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个数组最大的长度是一个 int 的最大值,也就是 2147483647
浏览器POST的数据如下: POST /data/contact.json HTTP/1.1 Host: 192.168.118.129 Connection: keep-alive Content-Length: 46 X-Requested-With: XMLHttpRequest User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0 Accept: */* Content-Type: application/x-www-form-urlencoded; charset=UTF-8 Origin: http://192.168.118.129 Referer: http://192.168.118.129/Contact.html Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6 name=adga&email=dafdf%40qq.com&message=dadfdqa 我这个代码不能提取出数据的请求体内容,需要你改善一下: // 客户端处理函数 void handle_client(void *arg) { int client_fd = *(int *)arg; char buffer[BUFFER_SIZE]; char client_ip[INET_ADDRSTRLEN]; // 获取客户端IP struct sockaddr_in client_addr; socklen_t addr_len = sizeof(client_addr); getpeername(client_fd, (struct sockaddr *)&client_addr, &addr_len); /* 获取与套接字关联的远程协议地址 */ inet_ntop(AF_INET, &client_addr.sin_addr, client_ip, INET_ADDRSTRLEN); /* 将数值格式的IP地址转换为点分十进制格式 */ // 接收HTTP请求 ssize_t bytes_read = recv(client_fd, buffer, BUFFER_SIZE - 1, 0); /* 等待接收数据 */ if (bytes_read <= 0) { close(client_fd); free(arg); return; } buffer[bytes_read] = '\0'; printf("%s\r\n", buffer); // 解析HTTP请求 http_request_t req; if (parse_http_request(buffer, &req) != 0) { log_request(client_ip, "UNKNOWN", "INVALID", 400); send_error_response(client_fd, 400, "Bad Request"); close(client_fd); free(arg); return; } // 记录请求日志 log_request(client_ip, req.method, req.path, 200); // 处理请求 if ((strcmp(req.method, "GET") == 0) || (strcmp(req.method, "POST") == 0)) { handle_http_request(client_fd, &req); } else { send_error_response(client_fd, 501, "Not Implemented"); } close(client_fd); free(arg); } 其中,一些结构体暂时是这样 typedef struct { char method[16]; // GET, POST等 char path[1024]; // 请求路径 char version[16]; // HTTP/1.0或HTTP/1.1 char host[256]; // Host头 int content_length; // 内容长度 } http_request_t; // 解析HTTP请求 int parse_http_request(const char *request, http_request_t *req);
最新发布
08-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值