在C語言中使用socket來發送JSON數據十分常見,下面是一份示例代碼:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #define SERVER_IP "127.0.0.1" #define SERVER_PORT 8888 int main(int argc, char* argv[]) { int client_sockfd; struct sockaddr_in server_addr; char buf[1024]; 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 ((client_sockfd = socket(AF_INET, SOCK_STREAM, 0))< 0) { perror("socket error"); return -1; } if (connect(client_sockfd, (struct sockaddr*)&server_addr, sizeof(server_addr))< 0) { perror("connect error"); return -1; } char* json_data = "{\"name\": \"tom\", \"age\": 18, \"gender\": \"male\"}"; if (send(client_sockfd, json_data, strlen(json_data), 0)< 0) { perror("send error"); return -1; } if (recv(client_sockfd, buf, sizeof(buf), 0)< 0) { perror("recv error"); return -1; } printf("server response: %s\n", buf); close(client_sockfd); return 0; }
首先需要定義服務器的IP地址和端口號,然后創建一個客戶端socket,連接到服務器,并且將JSON數據發送出去。
在上述代碼中,JSON數據使用字符串表示,可以根據具體的需求進行修改。
發送JSON數據時需要注意的是,數據長度不能超過1024個字節,如果數據過長需要進行分片發送。
當服務器收到JSON數據后,可以根據具體的業務邏輯進行處理,并且返回處理結果給客戶端。
最后,記得關閉socket連接。