在c語言的socket編程中,我們可以使用JSON格式傳輸數據。JSON是一種輕量級的數據交換格式,易于閱讀和編寫。下面我們來逐步了解如何使用c語言的socket傳輸JSON。
//導入相關頭文件 #include<stdio.h> #include<stdlib.h> #include<string.h> #include<sys/types.h> #include<sys/socket.h> #include<netinet/in.h> #include<arpa/inet.h> #include<stdbool.h> #include<json-c/json.h> int main(int argc, char *argv[]) { //創建socket int sockfd = socket(AF_INET, SOCK_STREAM, 0); struct sockaddr_in addr; bzero(&addr, sizeof(addr)); addr.sin_family = AF_INET; addr.sin_port = htons(8888); addr.sin_addr.s_addr = inet_addr("127.0.0.1"); //連接服務器 int connfd = connect(sockfd, (const struct sockaddr*) &addr, sizeof(addr)); //創建JSON對象 json_object *jobj = json_object_new_object(); json_object *jstring = json_object_new_string("Hello, JSON!"); json_object_object_add(jobj, "message", jstring); //將JSON格式化為字符串 const char *json_string = json_object_to_json_string(jobj); //發送數據 send(sockfd, json_string, strlen(json_string), 0); //釋放內存 json_object_put(jobj); close(sockfd); return 0; }
上述代碼中,我們首先創建了socket,然后創建了一個JSON對象,將該對象格式化為字符串后使用send函數發送到服務器。需要注意的是,在發送JSON數據之前,我們需要導入json-c庫并創建JSON對象,使用json_object_to_json_string函數將對象轉換成字符串格式。在接收方,我們需要使用json-c庫中的json_object_from_string函數將JSON字符串解析成JSON對象,以便對其中的字段進行解析。
上一篇gson獲取json數據
下一篇python+for實例