色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c 發送接收json

呂致盈2年前9瀏覽0評論

JSON(JavaScript Object Notation)是一種輕量級的數據交換格式。C語言可以通過第三方庫(如jansson)來解析和生成JSON字符串。在使用中,我們需要將JSON數據通過網絡發送到其他設備上,同時也需要從其他設備上接收JSON數據。本文將介紹在C語言中如何發送和接收JSON數據。

在發送JSON數據之前,我們需要將JSON對象轉換成字符串,可以使用jansson庫提供的函數來完成。例如下面的代碼將創建一個JSON對象,并將其轉換為字符串。

json_t *json_obj = json_object();
json_object_set_new(json_obj, "name", json_string("Tom"));
json_object_set_new(json_obj, "age", json_integer(20));
const char *json_str = json_dumps(json_obj, JSON_COMPACT);

在將JSON字符串發送到其他設備時,可以使用套接字(socket)來發送數據。以下代碼使用套接字發送JSON字符串。

int sockfd = socket(AF_INET, SOCK_STREAM, 0);
struct sockaddr_in server_addr;
server_addr.sin_family = AF_INET;
server_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
server_addr.sin_port = htons(8888);
connect(sockfd, (struct sockaddr *)&server_addr, sizeof(server_addr));
send(sockfd, json_str, strlen(json_str), 0);
close(sockfd);

接收JSON數據需要先接收數據,并將接收到的數據轉換成JSON對象。以下代碼使用套接字接收JSON字符串,并將其轉換成JSON對象。

int sockfd = socket(AF_INET, SOCK_STREAM, 0);
struct sockaddr_in server_addr;
server_addr.sin_family = AF_INET;
server_addr.sin_addr.s_addr = INADDR_ANY;
server_addr.sin_port = htons(8888);
bind(sockfd, (struct sockaddr *)&server_addr, sizeof(server_addr));
listen(sockfd, 128);
int connfd = accept(sockfd, (struct sockaddr *)NULL, NULL);
char buff[1024] = {0};
recv(connfd, buff, 1024, 0);
close(sockfd);
json_error_t error;
json_t *json_obj = json_loads(buff, 0, &error);

以上是在C語言中發送和接收JSON數據的基本方法,開發者可以在實際的項目中根據需要進行修改和擴展。