欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c 獲取post數據json格式

夏志豪1年前7瀏覽0評論

在使用C語言獲取post數據中的json數據時,需要先獲取post數據的長度,再根據長度讀取post數據并解析json。以下是一個簡單的示例:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <arpa/inet.h>
int main() {
int server_fd, client_fd;
struct sockaddr_in server_addr, client_addr;
char post_data[1024];
int post_size;
// 創建socket
server_fd = socket(AF_INET, SOCK_STREAM, 0);
// 綁定地址
server_addr.sin_family = AF_INET;
server_addr.sin_addr.s_addr = INADDR_ANY;
server_addr.sin_port = htons(8080);
bind(server_fd, (struct sockaddr*)&server_addr, sizeof(server_addr));
// 監聽端口
listen(server_fd, 3);
printf("Server started on port 8080\n");
while(1) {
// 接受連接
int client_size = sizeof(struct sockaddr_in);
client_fd = accept(server_fd, (struct sockaddr*)&client_addr, &client_size);
// 獲取post數據長度
char* http_header = malloc(1024);
recv(client_fd, http_header, 1024, 0);
char* post_data_start = strstr(http_header, "\r\n\r\n") + 4;
post_size = strlen(post_data_start);
// 獲取post數據
recv(client_fd, post_data, post_size, 0);
// 解析json數據
printf("Received JSON data:\n%s\n", post_data);
free(http_header);
close(client_fd);
}
return 0;
}

在上述示例中,我們首先創建了一個socket,然后綁定地址并監聽端口。在while循環中不斷接受連接并獲取post數據的長度,并根據長度讀取post數據。最后我們打印出來解析后的json數據。