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

c 接收post傳參json

謝彥文2年前8瀏覽0評論

在 C 語言中,要接收 POST 傳參的 JSON 可以通過以下步驟來實現:

步驟一:創建 socket

int sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd == -1) {
perror("socket");
exit(1);
}

步驟二:綁定端口

struct sockaddr_in servaddr;
memset(&servaddr, 0, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
servaddr.sin_port = htons(port);
if (bind(sockfd, (struct sockaddr*)&servaddr, sizeof(servaddr)) == -1) {
perror("bind");
exit(1);
}

步驟三:監聽請求

if (listen(sockfd, 10) == -1) {
perror("listen");
exit(1);
}

步驟四:接收請求

struct sockaddr_in cliaddr;
socklen_t cliaddrlen = sizeof(cliaddr);
int connfd = accept(sockfd, (struct sockaddr*)&cliaddr, &cliaddrlen);
char recvbuf[BUFSIZE] = {0};
int n = read(connfd, recvbuf, sizeof(recvbuf)-1);
// 處理請求參數
char* contentlen = strstr(recvbuf, "Content-Length");
if (contentlen == NULL) {
printf("no content length\n");
exit(1);
}
int len = atoi(contentlen+strlen("Content-Length: "));
char* json_start = strstr(recvbuf, "{");
if (json_start == NULL) {
printf("no json data\n");
exit(1);
}
memcpy(recvbuf, json_start, len);
recvbuf[len] = '\0';
// 解析 JSON
json_object* jobj = json_tokener_parse(recvbuf);

通過上述步驟,我們就可以在 C 語言中接收 POST 傳參的 JSON。