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

c 接收json 返回json數據格式

傅智翔2年前8瀏覽0評論

現在的Web應用程序都越來越傾向于使用JSON(JavaScript Object Notation)作為數據交換的格式。C語言開發的應用程序通常使用Socket通信與其他應用程序進行交互。我們可以通過C語言的Socket接口從Web服務器接收JSON格式的數據,然后解析后對其進行處理。同樣,我們也可以使用C語言從Web服務器向其他應用程序發送JSON格式的數據。

//接收JSON數據
int sockfd;
char buffer[MAXLINE];
struct sockaddr_in servaddr;
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd< 0) {
perror("socket error");
exit(-1);
}
memset(&servaddr, 0,sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(SERV_PORT);
if (inet_pton(AF_INET, servip, &servaddr.sin_addr)<= 0) {
perror("inet_pton error");
exit(-1);
}
if (connect(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr))< 0) {
perror("connect error");
exit(-1);
}
char request[MAXLINE] = "GET /data HTTP/1.1\r\nHost: localhost\r\n\r\n";
if (write(sockfd, request, strlen(request))< 0) {
perror("write error");
exit(-1);
}
int n;
while ((n = read(sockfd, buffer, MAXLINE)) >0) {
// 處理JSON數據
}

上述代碼中,我們使用Socket接口從服務器獲取JSON數據。

//發送JSON數據
int sockfd;
struct sockaddr_in servaddr;
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd< 0) {
perror("socket error");
exit(-1);
}
memset(&servaddr, 0,sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(SERV_PORT);
if (inet_pton(AF_INET, servip, &servaddr.sin_addr)<= 0) {
perror("inet_pton error");
exit(-1);
}
if (connect(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr))< 0) {
perror("connect error");
exit(-1);
}
char *json = "{\"name\":\"Tom\",\"age\":20}";
char request[MAXLINE];
sprintf(request, "POST /data HTTP/1.1\r\nHost: localhost\r\nContent-Type: application/json\r\nContent-Length: %d\r\n\r\n%s", strlen(json), json);
if (write(sockfd, request, strlen(request))< 0) {
perror("write error");
exit(-1);
}

上述代碼中,我們使用Socket接口向服務器發送JSON數據。