在 C++ 中使用 socket 发送 JSON 数据,需要先将 JSON 数据转换为字符串,然后可以使用 send() 函数发送字符串数据。
如果您使用的是 C++11 及以上版本,可以使用内置的 json 库,例如 nlohmann/json,它提供了方便的 API 来处理 JSON 数据。
以下是一个示例代码:
#include <iostream>
#include <string>
#include <nlohmann/json.hpp>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>
using json = nlohmann::json;
int main() {
int sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock == -1) {
std::cerr << "Failed to create socket" << std::endl;
return 1;
struct sockaddr_in server_address;
server_address.sin_family = AF_INET;
server_address.sin_port = htons(1234);
inet_pton(AF_INET, "127.0.0.1", &server_address.sin_addr);
int connect_result = connect(sock, (struct sockaddr *) &server_address, sizeof(server_address));
if (connect_result == -1) {
std::cerr << "Failed to connect to server" << std::endl;
return 1;
json data = {
{"key1", "value1"},
{"key2", 123}
std::string data_str = data.dump();
int sent_bytes = send(sock, data_str.c_str(), data_str.size(), 0);
if (sent_bytes == -1) {
std::cerr << "Failed to send data" << std::endl;
return 1;
close(sock);
return 0;
希望这对您有所帮助。