C 傳送 JSON 數據到服務器通常需要使用網絡協議和相關庫函數。在此先介紹下 Linux 系統下網絡編程需要用到的頭文件:
#include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <fcntl.h>
其中 socket.h、netinet/in.h 和 arpa/inet.h 分別包含了 socket()、connect()、bind()、listen()、accept()、send() 和 recv() 以及網絡自定義數據類型的定義。fcntl.h 則定義了文件控制相關的宏。
接著介紹下 JSON 數據的發送方式。JSON 數據以字符串形式存在,在使用 send() 函數時,需要將其進行轉換。
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h> int main() { int client_socket; struct sockaddr_in server_address; char buffer[1024]; char *message = "{\"name\":\"Tom\",\"age\":20}"; client_socket = socket(AF_INET, SOCK_STREAM, 0); memset(&server_address, 0, sizeof(server_address)); server_address.sin_family = AF_INET; server_address.sin_port = htons(3333); server_address.sin_addr.s_addr = inet_addr("127.0.0.1"); connect(client_socket, (struct sockaddr *)&server_address, sizeof(server_address)); // send json send(client_socket, message, strlen(message), 0); printf("JSON sent\n"); close(client_socket); return 0; }
在這個例子中,我們定義了一個 JSON 字符串并當作消息進行發送。send() 函數的第三個參數傳遞的是消息的長度。
總結來看,C 傳送 JSON 到服務器的流程大致是:
- 通過 socket() 函數創建客戶端套接字。
- 設置服務端地址和端口。
- 通過 connect() 函數連接服務器。
- 將 JSON 數據轉換成字符串,并使用 send() 向服務器傳遞。
- 關閉套接字。
上一篇c 傳json數據后 d
下一篇c 傳json數組對象