C++实现TCp传输json数据源码示
时间: 2024-01-21 10:17:45 浏览: 103
C++文件传输实现源码
5星 · 资源好评率100%
以下是一个简单的示例程序,演示如何使用C++实现TCP传输JSON数据:
```cpp
#include <iostream>
#include <cstring>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <unistd.h>
#include <json/json.h>
int main() {
// 创建socket
int sockfd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (sockfd < 0) {
std::cerr << "Error creating socket." << std::endl;
return -1;
}
// 设置服务器地址和端口
struct sockaddr_in serv_addr;
memset(&serv_addr, 0, sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
serv_addr.sin_port = htons(12345);
// 连接服务器
if (connect(sockfd, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) < 0) {
std::cerr << "Error connecting to server." << std::endl;
return -1;
}
// 构造JSON对象
Json::Value root;
root["name"] = "John";
root["age"] = 30;
root["city"] = "New York";
// 序列化JSON对象为字符串
std::string json_str = root.toStyledString();
// 发送JSON字符串
if (send(sockfd, json_str.c_str(), json_str.length(), 0) < 0) {
std::cerr << "Error sending data." << std::endl;
return -1;
}
// 关闭socket
close(sockfd);
return 0;
}
```
在此示例中,我们使用了第三方库JsonCpp来构造和序列化JSON对象。使用send函数将JSON字符串发送到服务器端口12345。请注意,此示例仅演示了如何发送数据,服务器端应该有相应的代码来接收数据并进行处理。
阅读全文