在 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 数据的介绍。