c语言实现socket转json,C++解析JSON进行网络传输--一个通过JSON方式的socket传输
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传输相关推荐
- json数据解析_「Flutter实战」22.JSON解析和复杂数据模型转换
22.JSON解析和复杂数据模型转换技巧 json转Model类 创建model文件夹,在里面新建category.dart类 主要根据这个json来分析我们要做成类的样子 json数据 class ...
- Linux7081端口,bash,linux_利用shell将json数据解析后排序问题,bash,linux,ubuntu,json - phpStudy...
利用shell将json数据解析后排序问题 最近在写一个模仿dropbox_uploader的百度网盘的shell脚本.通过调用pcs的api返回一个目录下的所有文件.返回的json数据如下: {&q ...
- vue如何把数组转为json数组_vue.js,_vuejs Ajax取得一个数据json数组,vue.js - phpStudy...
vuejs Ajax取得一个数据json数组 vuejs Ajax取得一个数据json数组后,要通取回的数据再做判断一定只能通这种方式或者 套template标签 {{item.displayWord ...
- 大量json数据解析OOM 存储数据库 assets下的json压缩文件解压
项目背景:assets包下有个json压缩文件,要求对该文件进行解压,再对解压后的json文件进行解析,并最终将数据存入数据库中.json文件包含30万条数据,文件大小是180M,由于数据量大,采用了 ...
- Android json数据解析及简单例子
JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据 ...
- Esp8266 --深入分析官方json解析源码及如何使用json接口解析心知天气
什么是json? 懵逼回答:[参考菜鸟教程] a.JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) b.JSON 是轻量级的文本数据交 ...
- 【解决】json字符串解析失败json.decoder.JSONDecodeError
解决json解析失败报错:json.decoder.JSONDecodeError 最近遇到一个json字符串解析失败的问题,原因是json里面的":这个两个符合和一些特殊符号在搞鬼,报错如 ...
- linux下json数据解析,JSON数据解析 - iOS学习笔记_Linux编程_Linux公社-Linux系统门户网站...
在之前的<iOS学习--xml数据解析(九)>http://www.linuxidc.com/Linux/2014-02/97020p9.htm 介绍了xml数据解析,这一篇简单介绍一下J ...
- js中json字符串解析
在开发过程中,经常会用到Json字符串,有时需要对前端传过来的json串解析,或者把前端数据以json字符串的形式传送给后端,下面我们来看一下各方面的应用. 1.JSON格式和JS格式 //JS对象 ...
最新文章
- 记数据结构MOOC-二叉树
- 【Python基础】Python正则表达式,从入门到实战,精华都在这里!
- CSS魔法堂:深入理解line-height和vertical-align
- java继承上机作业
- 今日头条ocpm计费规则_入门篇|信息流广告的游戏规则—竞价机制
- python+selenium笔记(一):元素定位方法
- win10 家庭版系统,创建用户(users\account\ 中,文件的「所有者」属性)
- invest模型_ARK Invest最新报告 :AI训练成本下降了100倍,但训练最先进AI模型的成本惊人...
- 树莓派上使用 LCD1602 显示状态
- EHCache的使用教程
- 分享!手机浏览器一键跳转微信加好友的方法
- VOIP 语音视频通话 ---总述
- Mac系统不能使用网银怎么办?Parallels帮你
- python输入整数输出英文_python练习 英文字符的鲁棒输入+数字的鲁棒输入
- 提升团队战斗力的要点
- 中国工业园区建设与运营市场发展状况与投资战略咨询报告2022-2028年
- 2020年个人年终工作总结报告及2021年工作计划怎么利用敬业签历史记录 利用云便签备忘录及待办事项的任务清单有效解决2020年终总结报告的撰写
- element 表格全选,,翻页选中取消相关效果
- 基于51单片机电热水壶自动加热水温控制系统(源程序+仿真+论文)
- STM32CubeIDE开发(二十六), STM32的CAN总线开发要点
热门文章
- C++ 字符串指针与字符串数组
- 7zip File: How to Uncompress 7z files on Ubuntu, Debian, Fedora
- nginx 配置 http/2(h2) 和 http 在同一端口的问题
- org.apache.ibatis.reflection.ReflectionException: Error instantiating class with invalid types
- Docker中搭建FastDFS文件系统(多图)
- SpringBoot如何切换Redis默认库
- 重建AD域控制器的DNS服务器
- VirtualBox虚拟机与主机互相访问开启
- 什么linux系统是中文的,什么是Linux系统
- 0网卡开启_中标麒麟Linux v7系统下设置双网卡bond或team绑定详细过程