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

c通過socket發送json報文

阮建安1年前8瀏覽0評論

在C語言中,通過Socket發送JSON報文需要進行一些額外的處理,下面我們來介紹一下具體的步驟。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>
#define SERVER_IP "127.0.0.1"
#define SERVER_PORT 8888
#define BUFFER_SIZE 1024
int main() {
// 創建Socket
int sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (sock< 0) {
printf("Socket creation failed!\n");
exit(1);
}
// 連接到服務器
struct sockaddr_in server_addr;
memset(&server_addr, 0, sizeof(server_addr));
server_addr.sin_family = AF_INET;
server_addr.sin_addr.s_addr = inet_addr(SERVER_IP);
server_addr.sin_port = htons(SERVER_PORT);
if (connect(sock, (struct sockaddr *)&server_addr, sizeof(server_addr))< 0) {
printf("Connect to server failed!\n");
exit(1);
}
// 創建JSON報文
char *json_str = "{\"name\": \"Tom\", \"age\": 18}";
int json_len = strlen(json_str);
// 發送JSON報文
char buffer[BUFFER_SIZE];
memset(buffer, 0, BUFFER_SIZE);
snprintf(buffer, BUFFER_SIZE, "Content-Length: %d\r\n\r\n%s", json_len, json_str);
int ret = send(sock, buffer, strlen(buffer), 0);
if (ret< 0) {
printf("Send failed!\n");
exit(1);
}
// 關閉Socket
close(sock);
return 0;
}

上面就是Socket發送JSON報文的主要代碼,其中需要注意的一些細節有:

  • 需要在JSON報文前添加Content-Length字段來指定報文的長度
  • 需要使用snprintf函數將Content-Length和JSON報文組合成完整的報文

使用以上代碼可以將JSON報文發送到指定的服務器上。