TCP连接+数据库项目之零碎知识点

2023-10-30

服务器(绑定数据库)和客户端建立连接及传输需要建立的注意点!

1、如果要发送结构体中的数据,那么struct中不能使用char*或者string类,因为char*本质上是指针,而指针是通过操作地址来查找数据的,所以服务器接收到的数据只有4个字节长(因为在32为系统中指针大小为4);而string类,服务器会不知道接收的数据大小为多少,会报错!

2、char*转为string :        stringstr;

                                              str ="hello";

        

                                              char s[10];

                                              strcpy(s,str.c_str());//str.c_str() 是string转换成char*类型

     string转为char*: string str;

                str.c_str;

3、将读取到的sql_row放到string字符串中,因为string有自动拼接的特性

                 result = mysql_store_result(&myCont);//获取结果集

                 sql_row =mysql_fetch_row(result);//获取本行数据

                 string str;

                 for (int i = 0; i< 7; i++)

                 {

                           str +=sql_row[i];//将读取到的数据全部放入string字符串

                 }

4、要记得适当对字符串进行清零!否则容易信息读取错误或者直接段错误!

4、服务器和客户端之间收发数据追求效率,如果是发送多次数据,和一次发送一个很长的字符串(字符串当中有分隔符,可以用来在客户端端进行解封,根据分隔符将一个一个的单词送给结构体,在进行集中处理)

怎么加分隔符?while (sql_row =mysql_fetch_row(result));//获取本行数据

{

                            stringstr;

                            for(int i = 0; i < 7; i++)

                            {

                                   str+= sql_row[i];//将读取到的数据全部放入string字符串

str +=”  ”;

                            }

                            str+= "\n";

}

5、全局变量:一般来讲,除了1、类(eg:Books book)这种需要在很多函数中需要调用的,如果传的不是引用和指针,一般不会修改其值,而如果想要修改其值,则传引用,一旦传了引用,说明自己有意识地要修改,不会发生随意修改,即在自己还没有意识的情况下修改他的值!2、数据库指定变量,不需要修改的,可以直接放在.h文件内,和main文件关联,那么都可引用。而如果只是返回值,只是局部的需要调用,则使用局部变量,即每次需要用的时候都在函数内再次定义,他会自动释放,不存在随意被修改的情况!

总的来说:不能随意的使用全局变量!

6、形参和实参!

7、如果在1.h中定义了结构体Info,然后在对应的1.c文件中定义了Infodata,如果在main.c文件中也定义了Info data,则很有可能会发生重定义!

8、string、const char*、 char* 、char[]四者类型转化。

http://blog.csdn.net/rongrongyaofeiqi/article/details/52442169

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TCP连接+数据库项目之零碎知识点 的相关文章

随机推荐

  • MySQL执行器与存储引擎是怎么交互的

    体系结构 1 连接器 2 查询缓存 3 分析器 4 优化器 多个索引 选择哪个索引 join的顺序 5 执行器 调用存储引擎接口获取满足条件的第一行记录 调用存储引擎接口获取满足条件的下一行记录 6 存储引擎 索引下推 假设现子表T有字段
  • c++泛型算法扩展和迭代器、反向迭代器

    cout lt lt 插入迭代器 lt lt endl back inserter 创建一个使用push back的迭代器 front inserter 创建一个使用push front的迭代器 inserter 创建一个使用insert的
  • bee-box

    这篇博客就是为了记下bee box做题过程 随便记记 免得忘了 安装 先去官网下载了 然后分个新的盘单独放进去 打开虚拟机 双击bee box vmx就能安装了 打开里面的火狐会自动跳去一个登录界面 默认账号和密码是bee bug 登录然后
  • GitHub 源代码被泄露了...

    阅读本文大概需要 4 分钟 来自量子位 GitHub 忽然 开源 了自己代码的一部分 还将它放在了 GitHub 上 事件起因是这样的 TypeScript 的开发者 Resynth 忽然 Po 了篇文章 表示代码托管服务 GitHub 的
  • 【牛客网OJ题】不要二

    题目描述 二货小易有一个WH的网格盒子 网格的行编号为 0 H 1 网格的列编号为0 W 1 每个格子至多可以放一块蛋糕 任意两块蛋糕的欧几里得距离不能等于2 对于两个格子坐标 x1 y1 x2 y2 的欧几里得距离为 x1 x2 x1 x
  • spring注解:@Autowired、@Qualifier、@Primary

    Autowired 默认情况下 Autowired 按类型装配 Spring Bean 如果容器中有多个相同类型的 bean 则框架将抛出 NoUniqueBeanDefinitionException 以提示有多个满足条件的 bean 进
  • Raki的读paper小记:SELF-INSTRUCT: Aligning Language Models with Self-Generated Instructions

    Abstract Introduction Related Work 研究任务 改进大模型遵循指令的能力 SELF INSTRUCT提供了一种几乎无需注释的方法来使预训练语言模型与指令对齐 已有方法和相关工作 许多研究提出使用语言模型进行数
  • Vue 2.0双向绑定原理的实现

    Object defineProperty方法 vue js是采用数据劫持结合发布 订阅者模式的方式 通过Object defineProperty 来劫持各个属性的setter getter 在数据变动时发布消息给订阅者 触发相应的监听回
  • 分布式系统的正确性验证方法

    分布式系统的正确性验证方法 1 Jepsen框架 Jepsen是一个开源的分布式一致性验证框架 可用于验证分布式数据库 分布式消息队列 分布式协调系统 Jepsen探索特定故障模式下分布式系统是否满足一致性 Jepsen框架是一个
  • 用于构建 RESTful Web 服务的多层架构

    文章出自 Bruce Sun Java 架构师 IBM 简介 由于它简便 轻量级以及通过 HTTP 直接传输数据的特性 RESTful Web 服务成为基于 SOAP 服务的一个最有前途的替代方案 在本文中 我们将概述 REST 和 RES
  • 分享63个最常见的前端面试题及其答案

    在前端面试中 各种面试题都会遇到 因此 今天我们整理了60 比较常见繁杂的面试题 希望这些面试题能够对你有所帮助 当然 这些面试题的答案都不是标准答案 只是对答案做了一个简介明了的说明 希望可以快速帮助你梳理重点核心内容 这些答案可以作为参
  • 密码破解---实验八:Windows本地破解用户口令

    目录 一 实验目的及要求 二 实验原理 1 Windows NT 系统密码存储的基本原理 2 SAM的导出方法 三 实验环境 四 实验步骤及内容 五 实验总结 六 分析与思考 一 实验目的及要求 1 了解Windows2000 XP Ser
  • apache服务详解

    APACHE服务 Apache HTTP Server 简称Apache 是Apache软件基金会的一个开放源码的网页服务器 可以在大多数计算机操作系统中运行 由于其多平台和安全性被广泛使用 是最流行的Web服务器端软件之一 它快速 可靠并
  • [机缘参悟-72]:深度思考-人生自省的四重境界:不觉、自觉、觉他、圆满

    前言 人有觉 自觉 觉他 觉行圆满 阐述了人生自省的三重状态 把 不觉 也放入其中 作为在芸芸众生的起点 福 看天下 众生皆苦 从 福 家来看 身体的劳作都算不上真正的苦 福 学中 对于 苦 有不同的认识 可以总结出人世间八大痛苦 此为众生
  • SpringSecurity源码分析(一) SpringBoot集成SpringSecurity即Spring安全框架的加载过程

    Spring Security是一个强大的并且高度可定制化的访问控制框架 它基于spring应用 Spring Security是聚焦于为java应用提供授权和验证的框架 像所有的spring项目一样 Spring Security真正的强
  • osError cannot load library‘Libsndfile.dll‘:error 0x7e

    解决 1 在所给报错路径下 在site packages文件夹下自己创建一个命名为 soundfile data的文件夹 2 下载libsndfile64bit dll文件 下载地址为https github com bastibe lib
  • MySQL8 详细安装步骤 【附安装包】

    一 准备安装包 方式1 云盘 下载 MySQL8 百度云盘下载地址 地址永久有效 链接 https pan baidu com s 1s BH7uizzuwr8P QAJzH4w 提取码 e2xf 方式2 官网下载 MySQL官网下载安装包
  • part2:服务器接收企业微信用户消息

    流程概括 PART1 阿里云服务器配置 购买并配置阿里云服务器 这里选择的是ESC云服务器 centOS7操作系统 配置安全组 开放端口 允许外部访问你的服务器 购买域名并解析到服务器端 申请ssl证书并下载 PART2 远程操作服务器 下
  • js事件 及 事件对象event

    事件类型 鼠标事件 click 点击 dblclick双击 mouseover mouseenter鼠标移入 mouseout mouseleave鼠标离开 onmouseover和onmouseenter的区别 onmouseout和on
  • TCP连接+数据库项目之零碎知识点

    服务器 绑定数据库 和客户端建立连接及传输需要建立的注意点 1 如果要发送结构体中的数据 那么struct中不能使用char 或者string类 因为char 本质上是指针 而指针是通过操作地址来查找数据的 所以服务器接收到的数据只有4个字