
后台开发技术
文章平均质量分 96
黑历史
pourtheworld
DB programmer + UE4 rookie
展开
-
第一周上课内容
数据库基础关系型数据库与非关系型数据库关系型数据库非关系型数据库mysql与oracle关系型数据库与非关系型数据库关系型数据库简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。常用概念关系:可以理解为一张二维表,每个关系都具有一个关系名,就是通常说的表名。元组:可以理解为二维表中的一行,在数据库中经常被称为记录。属性:可以理解为二维表中的一列,在数据库中经常被称为字段。域:属性的取值范围,也就是数据库中某一列的取值限制。关键字:一组原创 2021-03-22 15:23:34 · 229 阅读 · 1 评论 -
后台开发核心技术(八)TCP server的实现
实现一个TCP server:用TCP协议编写一个简单的server、client,其中server监听本机6666号端口。如果收到连接请求,将接受请求并接受客户端发来的消息。server.cpp: 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> 4 #include...原创 2019-08-24 12:10:04 · 556 阅读 · 0 评论 -
后台开发核心技术(七)TCP协议
TCP协议:TCP头部格式1 ) 16位端口号:告知主机该报文段是来自哪里以及传给哪个上层协议或者应用程序的。在TCP通信时,客户端通常使用系统自动选择的临时端口号,而服务器则使用知名服务端口号。知名服务端口号定义在/etc/services中。2 ) 32位序号:一次TCP通信过程中某一个传输方向上的字节流的每个字节的编号。假设主机A和主机B进行TCP通信,A发给B的第一个T...原创 2019-08-22 14:47:38 · 618 阅读 · 2 评论 -
后台开发核心技术(六)Linux内存空间布局
Linux运行中的C程序的内存空间布局:代码段(.text segment)存放程序执行代码的一块内存区域,该区域大小在程序运行前就已经确定,通常属于只读。初始化数据段(.data segment) (图中有误)通常用来存放已初始化的全局变量的一块内存区域。数据段属于静态内存分配。未初始化的数据段(.bss segment)通常用来存放未初始化的全局变量的一块内存区域。...原创 2019-08-20 15:15:40 · 184 阅读 · 0 评论 -
后台开发核心技术(五)调试工具之gdb
gdb:gcc调试工具,用于C和G++编写的程序。gdb调试先决条件:想将调试信息加到可执行文件中。 gcc -g hello.c -o hello g++ -g hello.cpp -o hello没有-g,将看不见程序的函数名和变量名,以内存地址代替。gdb启动方法:gdb program(执行文件)gdb program core同时调试一个运行程序和core文件(cor...原创 2019-08-20 10:19:27 · 129 阅读 · 0 评论 -
后台开发核心技术(四)调试工具之strace
系统调用:OS在其内核有一些内建的函数,可以完成一些系统级别的功能,称为系统调用(system call)。代表了用户空间到内核空间的转换,如用户空间调用open函数,在内核空间会调用sys_open。需要注意的是,应用程序不能访问内核空间,也不能调用内核函数。但是应用程序可以跳转到system call的内核位置,内核会根据系统调用号,找到所调用的内核函数入口地址,调用该函数,然后返回到进程...原创 2019-08-19 19:04:08 · 236 阅读 · 0 评论 -
后台开发核心技术(三)ELF文件
ELF:用于二进制文件,可执行文件,目标代码,共享库,核心转储的标准文件格式。目标文件发展历程:UNIX从最早的a.out(难以支撑共享库概念)->COFF(引入了段的概念)->ELF(更具扩展性和灵活性)ELF文件类型:可重定位的目标文件即由汇编器汇编生成的.o文件,链接器将其作为目标文件作为输入 ,链接处理后,生成一个可执行的目标文件或者可被共享的对象文件(.so文件)...原创 2019-08-19 14:22:17 · 284 阅读 · 0 评论 -
后台开发核心技术(二)makefile的撰写
makefile:自动化编译整个工程。准备 file1.h,file1.cpp,file2.cpp。其中file1.h代码为:原创 2019-08-18 15:48:11 · 137 阅读 · 0 评论 -
后台开发核心技术(一)编译与链接
编译与链接的整个过程:预处理Prepressing->编译->Compilation->汇编Assembly->链接->Linking以helloworld作为例子展开:预处理g++ -E hello.cpp -o hello.i -> hello.i(1) 将#define的内容替换(2) 处理条件预编译指令,如#if ,#ifdef等(...原创 2019-08-18 11:04:57 · 220 阅读 · 0 评论