当前位置: 首页 > news >正文

python php 做网站wordpress守望

python php 做网站,wordpress守望,网站开发商务合同,wordpress可爱主题网络编程中的序列化、反序列化与协议 1. 序列化和反序列化的概念2. 序列化、反序列化与协议的关系3. JSON与网络通信 在网络编程中#xff0c;序列化和反序列化与协议密切相关#xff0c;它们共同构成了数据在网络中传输的基础。本文将详细介绍序列化、反序列化以及它们与协议… 网络编程中的序列化、反序列化与协议 1. 序列化和反序列化的概念2. 序列化、反序列化与协议的关系3. JSON与网络通信 在网络编程中序列化和反序列化与协议密切相关它们共同构成了数据在网络中传输的基础。本文将详细介绍序列化、反序列化以及它们与协议之间的关系以及它们在网络通信中的应用。 1. 序列化和反序列化的概念 序列化是将对象或数据结构转换为字节流或其他可传输的格式的过程以便在网络上传输或持久化存储。序列化后的数据可以以一种结构化的形式传输使得接收方能够准确地解析和还原原始数据。 反序列化则是将序列化后的数据重新转换为原始对象或数据结构的过程以便接收方能够使用和理解这些数据。 2. 序列化、反序列化与协议的关系 在网络通信中协议起着制定通信规则和格式的作用它规定了数据在网络上传输的格式、传输方式以及通信的行为。序列化和反序列化与协议密切相关 协议规范数据格式 协议规定了数据在网络上传输的格式和规范包括数据的结构、编码方式、标识符等。序列化和反序列化需要按照协议规定的格式来进行以确保数据在传输过程中能够被正确解析和处理。 序列化与网络协议 序列化将数据转换为可以在网络上传输的格式而网络协议则负责指定数据在网络中的传输方式和规则。序列化后的数据需要符合网络协议的规范以便能够在网络中传输和解析。 反序列化与数据解析 接收方在接收到数据后需要进行反序列化操作将数据还原为原始格式。这个过程也涉及到协议的解析接收方需要按照协议规定的格式来解析数据以确保能够正确地处理和使用数据。 代码示例 class request { public:request(const int x, const int y, const char op): x_(x), y_(y), op_(op){}request(){}// 序列化请求对象为格式为 x y 的字符串bool Serialize(string *out){// 将请求对象的参数转换为字符串并按照指定格式拼接起来*out to_string(x_); // 将 x_ 转换为字符串并存储在 out 中*out blank_spaces; // 添加空格*out op_; // 添加操作符*out blank_spaces; // 添加空格*out to_string(y_); // 将 y_ 转换为字符串并追加在 out 后面return true; // 序列化成功}// 反序列化字符串为请求对象bool Deserialize(const string in){int lpos in.find(blank_spaces); // 查找第一个空格的位置if (lpos string::npos)return false; // 如果找不到空格解析失败int rpos in.rfind(blank_spaces); // 查找最后一个空格的位置if (rpos string::npos)return false; // 如果找不到空格解析失败x_ stoi(in.substr(0, lpos)); // 解析第一个空格之前的数字作为xy_ stoi(in.substr(rpos)); // 解析最后一个空格之后的数字作为yif (lpos 2 ! rpos)return false; // 如果两个空格之间不是一个字符的间隔解析失败op_ in[lpos 1]; // 解析两个空格之间的字符作为操作符return true; // 解析成功}public:int x_; // 请求中的参数xint y_; // 请求中的参数ychar op_; // 请求中的操作符 };request(const int x, const int y, const char op)构造函数接受三个参数分别为整数 x、整数 y 和字符 op用于初始化请求对象的成员变量。 request()默认构造函数没有参数用于创建一个空的请求对象。 bool Serialize(string *out)序列化函数将请求对象序列化为格式为 “x y” 的字符串。其中x 和 y 分别代表请求中的参数op 代表请求中的操作符。该函数将序列化结果存储在指针 out 指向的字符串中并返回 true 表示序列化成功。 bool Deserialize(const string in)反序列化函数将字符串反序列化为请求对象。该函数接受一个字符串 in 作为参数该字符串应该是由 Serialize 函数生成的格式化字符串。函数会尝试从字符串中解析出参数 x、y 和操作符 op并将其存储到请求对象的对应成员变量中。如果解析成功则返回 true否则返回 false 3. JSON与网络通信 在网络通信中JSONJavaScript Object Notation作为一种通用的数据交换格式经常被用来进行序列化和反序列化操作。它简单易懂的格式使得数据在网络上传输更加方便并且能够被多种编程语言支持和解析。 JSON的特点 轻量级JSON 是一种轻量级的数据交换格式对于数据量较小的情况下其格式简洁明了不会增加太多的网络负担。 易读性JSON 使用键值对的形式表示数据结构清晰易于人类阅读和编写。 可扩展性JSON 支持嵌套结构可以构建复杂的数据格式并且支持数组等数据类型使得它在不同场景下都能发挥作用。 JSON与序列化、反序列化 在网络通信中序列化和反序列化是将数据转换为网络传输所需的格式和从网络接收的数据转换为程序可识别的格式的过程。JSON 与序列化、反序列化密切相关 序列化 (Serialization) 在 Serialize 方法中我们将 request 对象的成员变量 x_、y_ 和 op_ 序列化为 JSON 格式的字符串。我们使用了 Json::Value 对象来表示 JSON 数据然后将 x_、y_ 和 op_ 分别赋值给 JSON 对象的相应字段。最后我们使用 Json::StyledWriter 将 JSON 对象转换为格式化后的 JSON 字符串并将其存储在传入的 out 字符串中。 // 将请求对象序列化为 JSON 格式的字符串 bool request::Serialize(std::string *out) {// 创建一个 Json::Value 对象用于存储 JSON 数据Json::Value s;// 创建 JSON 对象并填充数据s[x] x_; // 将 x_ 存储为键为 x 的字段s[y] y_; // 将 y_ 存储为键为 y 的字段s[op] op_; // 将 op_ 存储为键为 op 的字段// 使用 Json::StyledWriter 将 JSON 对象转换为格式化后的 JSON 字符串Json::StyledWriter w;*out w.write(s); // 将转换后的 JSON 字符串存储到 out 中return true; // 序列化成功 }反序列化 (Deserialization) 在 Deserialize 方法中我们从传入的 JSON 格式的字符串中解析出 x_、y_ 和 op_ 的值并赋值给 request 对象的相应成员变量。我们使用了 Json::Value 对象来解析 JSON 数据并使用 Json::Reader 对象来解析 JSON 字符串。然后我们从 Json::Value 对象中提取出 x、y 和 op 字段的值并分别赋值给 request 对象的成员变量。 // 将 JSON 格式的字符串反序列化为请求对象 bool request::Deserialize(const std::string in) {// 创建一个 Json::Value 对象用于存储 JSON 数据Json::Value s;// 创建一个 Json::Reader 对象用于解析 JSON 数据Json::Reader r;// 使用 Json::Reader 解析传入的 JSON 字符串并存储到 Json::Value 对象 s 中r.parse(in, s);// 从 Json::Value 对象中提取字段的值并赋值给请求对象的成员变量x_ s[x].asInt(); // 获取键为 x 的字段值并转换为整数赋值给 x_y_ s[y].asInt(); // 获取键为 y 的字段值并转换为整数赋值给 y_op_ s[op].asString()[0]; // 获取键为 op 的字段值的第一个字符赋值给 op_ 假设 op 是单个字符return true; // 反序列化成功 }序列化将对象或数据结构转换为 JSON 格式的字符串以便在网络上传输。序列化过程需要将对象的各个属性转换为 JSON 对象的键值对并将其按照 JSON 的格式进行组织。 反序列化将接收到的 JSON 格式的字符串转换为程序可识别的对象或数据结构。反序列化过程需要解析 JSON 字符串提取其中的数据并将其转换为程序内部可处理的格式。 完整代码https://gitee.com/yua-lian/learning TCP 网络编程 序列化、反序列化
http://www.zqtcl.cn/news/404773/

相关文章:

  • 网站开发及企业推广营销型网站建设怎么收费
  • 网站建设与管理ppt课件百度云盘关键词推广营销
  • c asp.net网站开发书宁波建设业协会网站
  • 政务网站建设发言材料知名互联网公司有哪些
  • 网站搭建制作建e室内设计网画图
  • 重庆市建设工程施工安全管理信息网北京seo公司网站
  • 国外做调查问卷的网站建设邮费自己的网站 要不要购买服务器的
  • 网站建设和优化排名四川建设网官网证书查询入口
  • 如何搜名字搜到自己做的网站电子商务平台icp备案证明
  • 网站建设与管理工作内容北京网站建设价
  • 做网站选哪个语言软文营销的方法
  • 青岛正规公司网站建设公司中国建设银行注册网站
  • 免费个人网站平台关键词检索
  • 定制型网站建设推广宁河网站建设
  • 主流网站开发语言有哪些电子邮件营销
  • 扫描二维码进入公司网站怎样做在万网上域名了怎么做网站
  • 销售型网站设计怎么做网站广告位
  • 网站推广的方法ppt购物网站logo
  • 网站关键词分割wordpress为展示的作品投票
  • 建立网站 域名 服务器吗wordpress超链接出错
  • 外贸开发网站建设注册会计师协会
  • 莆田建设网站dw网页设计作品及源码
  • 360免费建站视频淘宝客的网站怎么做
  • 四川自助seo建站短视频推广计划
  • 网站建设案例的公司黄冈网站建设公司
  • 做淘客网站需要营业执照吗制作网站公
  • 手机网站开发的目的鲁班设计远程工作
  • 宿迁网站建设要多少钱高密市住房和城乡建设局网站
  • 咸阳网站建设公司哪家好wordpress访客ip记录
  • 厦门建设银行网站那个网站做效果图电脑配置