1、客户端:

#include "json//json.h"

#include

#pragma comment(lib, "WS2_32.lib")

#pragma comment(lib, "json_vc71_libmtd.lib")

int main()

{

Json::Value val;

Json::StyledWriter style_write;

val["name"] = "xiaoli" ;

WSADATA wsaData;

SOCKET SendSocket;

sockaddr_in RecvAddr;

int Port = 27015;

//初始化Socket

WSAStartup(MAKEWORD(2, 2), &wsaData);

//创建Socket对象

SendSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);

//设置服务器地址

RecvAddr.sin_family = AF_INET;

RecvAddr.sin_port = htons(Port);

RecvAddr.sin_addr.s_addr = inet_addr("127.0.0.1");

std::string SendBuf = style_write.write(val);

//向服务器发送数据

sendto(SendSocket, SendBuf.c_str(), SendBuf.size(), 0, (SOCKADDR*)&RecvAddr, sizeof(RecvAddr));

closesocket(SendSocket);

WSACleanup();

getchar();

return 0;

}

2、服务器端:

#include

#include

#include "json/json.h"

#pragma comment(lib, "WS2_32.lib")

#pragma comment(lib, "json_vc71_libmtd.lib")

int main()

{

//初始化socket

WSADATA wsaData;

WSAStartup(MAKEWORD(2,2), &wsaData);

//创建socket

SOCKET RecvSocket;

RecvSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);

//设置服务器地址

sockaddr_in RecvAddr;

int Port = 27015;

RecvAddr.sin_family = AF_INET;

RecvAddr.sin_port = htons(Port);

RecvAddr.sin_addr.s_addr = htonl(INADDR_ANY);

//绑定socket

bind(RecvSocket, (SOCKADDR*)&RecvAddr, sizeof(RecvAddr));

char RecvBuf[1024];

int BufLen = 1024;

sockaddr_in SenderAddr;

int SendAddrSize = sizeof(SenderAddr);

recvfrom(RecvSocket, RecvBuf, BufLen, 0, (SOCKADDR*)&SenderAddr, &SendAddrSize);

std::string strName;

Json::Value val;

Json::Reader reader;

if (reader.parse(RecvBuf, val))

{

strName = val["name"].asString();

}

std::cout << strName << std::endl;

closesocket(RecvSocket);

WSACleanup();

getchar();

return 0;

}

3、成功结果:

c语言实现socket转json,C++解析JSON进行网络传输--一个通过JSON方式的socket传输相关推荐

  1. json数据解析_「Flutter实战」22.JSON解析和复杂数据模型转换

    22.JSON解析和复杂数据模型转换技巧 json转Model类 创建model文件夹,在里面新建category.dart类 主要根据这个json来分析我们要做成类的样子 json数据 class ...

  2. Linux7081端口,bash,linux_利用shell将json数据解析后排序问题,bash,linux,ubuntu,json - phpStudy...

    利用shell将json数据解析后排序问题 最近在写一个模仿dropbox_uploader的百度网盘的shell脚本.通过调用pcs的api返回一个目录下的所有文件.返回的json数据如下: {&q ...

  3. vue如何把数组转为json数组_vue.js,_vuejs Ajax取得一个数据json数组,vue.js - phpStudy...

    vuejs Ajax取得一个数据json数组 vuejs Ajax取得一个数据json数组后,要通取回的数据再做判断一定只能通这种方式或者 套template标签 {{item.displayWord ...

  4. 大量json数据解析OOM 存储数据库 assets下的json压缩文件解压

    项目背景:assets包下有个json压缩文件,要求对该文件进行解压,再对解压后的json文件进行解析,并最终将数据存入数据库中.json文件包含30万条数据,文件大小是180M,由于数据量大,采用了 ...

  5. Android json数据解析及简单例子

    JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据 ...

  6. Esp8266 --深入分析官方json解析源码及如何使用json接口解析心知天气

    什么是json? 懵逼回答:[参考菜鸟教程]   a.JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)   b.JSON 是轻量级的文本数据交 ...

  7. 【解决】json字符串解析失败json.decoder.JSONDecodeError

    解决json解析失败报错:json.decoder.JSONDecodeError 最近遇到一个json字符串解析失败的问题,原因是json里面的":这个两个符合和一些特殊符号在搞鬼,报错如 ...

  8. linux下json数据解析,JSON数据解析 - iOS学习笔记_Linux编程_Linux公社-Linux系统门户网站...

    在之前的<iOS学习--xml数据解析(九)>http://www.linuxidc.com/Linux/2014-02/97020p9.htm 介绍了xml数据解析,这一篇简单介绍一下J ...

  9. js中json字符串解析

    在开发过程中,经常会用到Json字符串,有时需要对前端传过来的json串解析,或者把前端数据以json字符串的形式传送给后端,下面我们来看一下各方面的应用. 1.JSON格式和JS格式 //JS对象 ...

最新文章

  1. 记数据结构MOOC-二叉树
  2. 【Python基础】Python正则表达式,从入门到实战,精华都在这里!
  3. CSS魔法堂:深入理解line-height和vertical-align
  4. java继承上机作业
  5. 今日头条ocpm计费规则_入门篇|信息流广告的游戏规则—竞价机制
  6. python+selenium笔记(一):元素定位方法
  7. win10 家庭版系统,创建用户(users\account\ 中,文件的「所有者」属性)
  8. invest模型_ARK Invest最新报告 :AI训练成本下降了100倍,但训练最先进AI模型的成本惊人...
  9. 树莓派上使用 LCD1602 显示状态
  10. EHCache的使用教程
  11. 分享!手机浏览器一键跳转微信加好友的方法
  12. VOIP 语音视频通话 ---总述
  13. Mac系统不能使用网银怎么办?Parallels帮你
  14. python输入整数输出英文_python练习 英文字符的鲁棒输入+数字的鲁棒输入
  15. 提升团队战斗力的要点
  16. 中国工业园区建设与运营市场发展状况与投资战略咨询报告2022-2028年
  17. 2020年个人年终工作总结报告及2021年工作计划怎么利用敬业签历史记录 利用云便签备忘录及待办事项的任务清单有效解决2020年终总结报告的撰写
  18. element 表格全选,,翻页选中取消相关效果
  19. 基于51单片机电热水壶自动加热水温控制系统(源程序+仿真+论文)
  20. STM32CubeIDE开发(二十六), STM32的CAN总线开发要点

热门文章

  1. C++ 字符串指针与字符串数组
  2. 7zip File: How to Uncompress 7z files on Ubuntu, Debian, Fedora
  3. nginx 配置 http/2(h2) 和 http 在同一端口的问题
  4. org.apache.ibatis.reflection.ReflectionException: Error instantiating class with invalid types
  5. Docker中搭建FastDFS文件系统(多图)
  6. SpringBoot如何切换Redis默认库
  7. 重建AD域控制器的DNS服务器
  8. VirtualBox虚拟机与主机互相访问开启
  9. 什么linux系统是中文的,什么是Linux系统
  10. 0网卡开启_中标麒麟Linux v7系统下设置双网卡bond或team绑定详细过程