欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c tcp發(fā)送json數(shù)據(jù)格式

在C語(yǔ)言中使用TCP發(fā)送JSON數(shù)據(jù)格式是一種非常實(shí)用的技巧,這可以方便我們?cè)诰W(wǎng)絡(luò)通信中傳輸數(shù)據(jù),常用于服務(wù)器與客戶(hù)端之間的通訊。JSON是一種輕量級(jí)數(shù)據(jù)交換格式,通常以鍵值對(duì)的形式表示數(shù)據(jù),因其簡(jiǎn)潔易讀、輕便跨平臺(tái)而被廣泛應(yīng)用。

//示例代碼
#include#include#include#include#include#include#include#include#define MAXLINE 1024
typedef struct {
int id;
char name[20];
char gender;
} Student;
char * encode(Student s) {
char * str = malloc(50);
sprintf(str, "{\"id\":%d,\"name\":\"%s\",\"gender\":\"%c\"}", s.id, s.name, s.gender);
return str;
}
int main() {
int sockfd, n;
struct sockaddr_in servaddr;
char recvline[MAXLINE + 1];
Student s;
sockfd = socket(AF_INET, SOCK_STREAM, 0);
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(9999);
inet_pton(AF_INET, "127.0.0.1", &servaddr.sin_addr);
connect(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr));
s.id = 1001;
strcpy(s.name, "Tom");
s.gender = 'M';
char * str = encode(s);
write(sockfd, str, strlen(str));
n = read(sockfd, recvline, MAXLINE);
recvline[n] = 0;
printf("%s\n", recvline);
free(str);
close(sockfd);
return 0;
}

上述示例代碼中,我們定義了一個(gè)Student結(jié)構(gòu)體,包含學(xué)號(hào)、姓名和性別等信息,并定義了一個(gè)encode函數(shù)將其轉(zhuǎn)為JSON格式的字符串。在主函數(shù)中,我們首先創(chuàng)建一個(gè)TCP套接字并連接到服務(wù)器,然后定義一個(gè)Student結(jié)構(gòu)體并調(diào)用encode函數(shù)對(duì)其進(jìn)行編碼。最后通過(guò)write函數(shù)將編碼后的字符串發(fā)送給服務(wù)器,接著讀取服務(wù)器返回的信息并打印輸出。最后關(guān)閉套接字并釋放編碼后的字符串。