在 C 語言中,socket 是一種常見的網絡編程方式。而對于傳輸數據格式,JSON 是一種輕量級的數據交換格式。下面將介紹如何使用 socket 傳送 JSON 數據。
首先需要導入以下頭文件:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h>
接著可以定義一個 JSON 字符串作為發送的數據:
char *json_str = "{ \"name\": \"John\", \"age\": 30 }";
然后需要設置 socket 的基本信息,如地址、端口等:
int sockfd; struct sockaddr_in server_addr; if ((sockfd = socket(AF_INET, SOCK_STREAM, 0))< 0) { perror("socket error"); exit(1); } memset(&server_addr, 0, sizeof(server_addr)); server_addr.sin_family = AF_INET; server_addr.sin_port = htons(8080); server_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
接著可以使用connect
函數連接到服務器:
if (connect(sockfd, (struct sockaddr *)&server_addr, sizeof(server_addr))< 0) { perror("connect error"); exit(1); }
在連接成功后,可以使用send
函數將 JSON 數據發送給服務器:
if (send(sockfd , json_str , strlen(json_str) , 0)< 0) { perror("send error"); exit(1); }
如果需要接收服務器返回的數據,可以使用recv
函數:
char buffer[1024]; if (recv(sockfd, buffer, 1024, 0)< 0) { perror("recv error"); exit(1); } printf("Server response: %s\n", buffer);
最后使用close
函數關閉 socket 連接:
close(sockfd);
以上就是如何使用 C socket 傳送 JSON 數據的介紹。
下一篇vue 3.0 發布