C語言是一門非常流行的編程語言,在編寫網(wǎng)絡(luò)應(yīng)用程序時,常常需要訪問服務(wù)器端的JSON數(shù)據(jù)。在C語言中,可以使用遠程JSON數(shù)據(jù)的操作可以通過網(wǎng)絡(luò)sockets來實現(xiàn)。
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/socket.h> #include <arpa/inet.h> int main(int argc , char *argv[]) { int socket_desc; struct sockaddr_in server; char *message , server_reply[2000]; //Create socket socket_desc = socket(AF_INET , SOCK_STREAM , 0); if (socket_desc == -1) { printf("Could not create socket"); } server.sin_addr.s_addr = inet_addr("127.0.0.1"); server.sin_family = AF_INET; server.sin_port = htons( 80 ); //Connect to remote server if (connect(socket_desc , (struct sockaddr *)&server , sizeof(server))< 0) { puts("connect error"); return 1; } puts("Connected\n"); //Send some data message = "GET /data.json HTTP/1.1\r\n\r\n"; if( send(socket_desc , message , strlen(message) , 0)< 0) { puts("Send failed"); return 1; } puts("Data Send\n"); //Receive a reply from the server if( recv(socket_desc, server_reply , 2000 , 0)< 0) { puts("recv failed"); } puts("Reply received\n"); puts(server_reply); //Close the socket close(socket_desc); return 0; }
上述代碼可以從本地IP地址為127.0.0.1的服務(wù)器上獲取data.json文件。這個代碼塊建立了一個socket連接,發(fā)送HTTP GET請求,從服務(wù)器接受回復(fù),并把回復(fù)打印在控制臺上。在真實的網(wǎng)絡(luò)應(yīng)用中,你需要對IP地址和接口端口進行更改以中獲取JSON數(shù)據(jù)。