色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c 用socket發送json

江奕云1年前7瀏覽0評論

Socket是一種在應用程序之間進行數據傳遞的機制。C語言中可以使用Socket庫來實現網絡編程。在使用Socket進行數據傳遞時,常常需要發送JSON數據。JSON是一種輕量級的數據交換格式,可在不同平臺和編程語言之間進行數據交換。下面是在C語言中使用Socket發送JSON數據的示例:

#include#include#include#include#include#include#include// 定義JSON消息格式
typedef struct {
char name[20];
int age;
char gender[10];
} person_t;
// 定義發送JSON消息的函數
int send_json(int sockfd, person_t person)
{
// 轉化為JSON字符串
char buf[1024];
sprintf(buf, "{name:\"%s\",age:%d,gender:\"%s\"}", person.name, person.age, person.gender);
int n = strlen(buf);
// 發送消息
if (send(sockfd, buf, n, 0) != n) {
fprintf(stderr, "send error: %s\n", strerror(errno));
return -1;
}
return n;
}
int main(int argc, char* argv[])
{
// 創建Socket
int sockfd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (sockfd == -1) {
fprintf(stderr, "socket error: %s\n", strerror(errno));
exit(EXIT_FAILURE);
}
// 設置服務器地址
struct sockaddr_in servaddr;
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(9999);
inet_pton(AF_INET, "127.0.0.1", &servaddr.sin_addr);
// 連接服務器
if (connect(sockfd, (struct sockaddr*)&servaddr, sizeof(servaddr)) == -1) {
fprintf(stderr, "connect error: %s\n", strerror(errno));
exit(EXIT_FAILURE);
}
// 發送JSON消息
person_t person = {"Tom", 20, "male"};
int n = send_json(sockfd, person);
if (n == -1) {
fprintf(stderr, "send_json error: %s\n", strerror(errno));
exit(EXIT_FAILURE);
}
// 關閉Socket
close(sockfd);
return 0;
}