C UDP傳輸JSON
C語言是一種面向過程的程序設計語言,它可以使用UDP協議傳輸JSON數據。
UDP協議簡介
UDP是用戶數據包協議,是一個面向無連接的協議。UDP協議不保證數據的可靠性,如果數據在傳輸過程中出現了錯誤,接收端不會重傳數據,也不會給發送端任何的確認信息。因為UDP協議沒有保障數據的可靠性,它的傳輸速度比TCP快,適合傳輸實時性要求高的數據。
JSON簡介
JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,它是基于JavaScript的子集標準。JSON擁有自我描述性和易于理解的特點,并且適用于多種編程語言。JSON常用于API的數據傳輸和存儲。
C UDP傳輸JSON代碼實現
1.創建UDP套接字 int sock; sock = socket(AF_INET, SOCK_DGRAM, 0); if (sock< 0) { perror("socket"); return 1; } 2.設置目標地址和端口號 struct sockaddr_in dest_addr; memset(&dest_addr, 0, sizeof(dest_addr)); dest_addr.sin_family = AF_INET; dest_addr.sin_port = htons(port); if (inet_aton(dest_ip, &dest_addr.sin_addr) == 0) { fprintf(stderr, "Invalid address\n"); return 1; } 3.將JSON數據打包成字符數組 json_t *root; json_error_t error; root = json_pack("{s:i,s:s}", "id", 1, "name", "張三"); char* json_data = json_dumps(root, JSON_COMPACT); 4.發送UDP數據包 if (sendto(sock, json_data, strlen(json_data), 0, (struct sockaddr *)&dest_addr, sizeof(dest_addr))< 0) { perror("sendto"); return 1; } 5.釋放JSON數據和套接字 json_decref(root); free(json_data); close(sock);