淘先锋技术网

首页 1 2 3 4 5 6 7

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