C socket是一個用C語言編寫的網絡程序庫,提供了對TCP/IP協議的支持,可以通過它向其他設備發送數據。這里我們將介紹如何使用C socket發送JSON數據。
//建立socket通信 int sockfd = socket(AF_INET, SOCK_STREAM, 0); if (sockfd == -1) { printf("創建socket失敗!"); return -1; } //連接服務器sockaddr_in類型 struct sockaddr_in client_addr; memset(&client_addr, 0, sizeof(client_addr)); client_addr.sin_family = AF_INET; client_addr.sin_port = htons(8081); client_addr.sin_addr.s_addr = inet_addr("127.0.0.1"); //連接服務器 int retconnect = connect(sockfd, (struct sockaddr *)&client_addr, sizeof(client_addr)); if (retconnect == -1) { printf("連接失敗!"); close(sockfd); return -1; } //發送json數據 char* json_str = "{\"id\":1,\"name\":\"jack\",\"age\":18}"; int len = strlen(json_str); int databuf[1024] = {0}; memcpy(databuf, json_str, len); int retsend = send(sockfd, databuf, len, 0); if (retsend< 0) { printf("發送失敗!"); return -1; } //關閉socket close(sockfd);
首先我們建立socket通信并連接到服務器指定端口,然后將要發送的JSON數據轉換成字符串,并將它發送到服務器。最后,關閉socket連接。
在此之前,您需要了解如何使用JSON,在C中使用JSON,可以使用json-c庫。Json-c是一個開源的C語言JSON處理庫,它提供了解析和構造JSON數據的函數。
在C socket中發送JSON數據,還需要將JSON數據編碼為二進制流,并在接收端解碼回JSON格式,可以使用JSON編碼器和解碼器,如msgpack編碼器和解碼器