网络编程
网络编程网络基础知识网络OSI模型网络OSI7层模型(Open Systems Interconnection)即开放系统互联。它是由ISO(Internet Organization for Standardization)制定 OSI时网络通讯的一种通用框架,它分为七层 序号 层 7 应用层(Application) 6 表示层(Presentation) 5 会话层(Session) 4 传输层(Transport)->TCP/UDP 3 网络层(NetWork) 2 数据链路层(Data Link) 1 物理层(Physical) 但不是所有网络通信都必须经过这7层模型,比如同一网段下两台计算机的交互,只需要经过物理层和数据链路层就够了。 网络上最重要的就是IP,IP就在网络层。 Windows Socket什么是套接字(Socket)Socket又称套接字,它是TCP/IP网络环境下应用程序与底层通信驱动程序之间运行的开发接口.它可以将应用程序与具体的TCP/IP隔离开.使得应用程序不需要了...
Win32API
Win32API 字符编码ASCII 码表 ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符 0 NUL 32 (space) 64 @ 96 、 1 SOH 33 ! 65 A 97 a 2 STX 34 ” 66 B 98 b 3 ETX 35 # 67 C 99 c 4 EOT 36 $ 68 D 100 d 5 ENQ 37 % 69 E 101 e 6 ACK 38 & 70 F 102 f 7 BEL 39 ‘ 71 G 103 g 8 BS 40 ( 72 H 104 h 9 HT 41 ) 73 I 105 i 10 LF 42 * 74 J 106 j 11 VT 43 + 75 K 107 k 12 FF 44 , 76 L 108 l 13 CR 45 - 77 M 109 m 14 SO 46 . 78 N 110 n 15 SI 47 / 79 O 111 o 16 DLE 48 0 80 P 112 p 17 ...
PE
PEPE文件结构可执行文件可执行文件(executable file)指的是可以由操作系统进行加载执行的文件 exe。txt之类的不是可执行文件,因为txt文件依赖exe打开。 可执行文件格式 12Windows平台: PE(Portable Executable)文件结构Linux平台: ELF(Executable and Linking Format)文件结构 应用 <1>病毒与犯病毒 <2>外挂与反外挂 <3>加壳与脱壳(保护与破解) <4>无源码修改功能、软件汉化等 PE指纹 开头是4D 5A,往后查到0x3C的位置,这里存着一个地址,F0,从头往后查F0个地址,发现是50 45也就是PE,这就是PE指纹。 .sys .exe .dll都符合PE文件结构,都有这样一个结构体: PE文件的两种状态DOS MZ头 DOS块 4个字的PE标识 20个字节标准PE头 224个字节的扩展PE头 40个字节第一个节表里面的数据 40个字节节表里的第二个成员 40个字节第三个成员 40个字节第四...
c++
C++封装封装将函数定义到结构体内部,就是封装 类带有函数的结构体称为类 成员函数结构体里面的函数,称为成员函数 this关键字当在一个类中,有一个成员函数 1234567891011121314struct MyStruct{ int a; int b; int c; int d; int init(int a, int b, int c, int d) { a = a; b = b; c = c; d = d; }} 当用a=a时,编译器不能知道a是参数a还是类中的a。 所以用this关键字 1234567891011121314struct MyStruct{ int a; int b; int c; int d; int init(int a, int b, int c, int d) { this->a = a; this->b = b; this->c = c; this->d = d; }} 因为this关键字指向的是结构体的首地址,所以t...
c
CC基础一、c语言分步编译1.预处理:宏定义展开 头文件展开 条件编译 去注释 2.汇编 检查语法 将C语言转变成汇编语言 3.汇编 将汇编语言转成机器语言 4.链接 将C语言依赖库链接到程序中 一步编译1gcc -o hello.exe hello1.c hello2.c 常见代码异常1.编辑时异常 2.编译时异常 3.运行时异常 程序执行过程 二、汇编语言和程序调试 汇编语言mov 移动add 添加push 压栈pop 出栈call 调用eax 32位寄存器简单的加法计算 123456mov a, 3mov b, 4mov eax, a add eax, bmov c, eax 快捷键:断点 F9调试 F5逐语句执行 F11逐过程执行 F10 寄存器名字 三、数据类型 变量与常量1.定义常量名 const 数据类型 常量名 = 值;(不建议,不安全 #define 常量名 值; 2.整形变量的定义和输出 打印格式 含义 %d 输出一个有符号的10进制int类型 %o 输出8进制的int类型 %x 输出16进制的int类...
汇编
汇编汇编基础二进制与十六进制十六进制相当于二进制的简写,可以看成二进制的另一种形式 二进制 十六进制 0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 1000 8 1001 9 1010 A 1011 B 1100 C 1101 D 1110 E 1111 F 数据宽度数据宽度 数学上的数字,是没有大小限制的,可以无限的大。但在计算机中,由于受硬件的制约,数据都是有长度限制的(称为数据宽度),超过最多宽度的数据会被丢弃 计算机中常见的数据宽度(1)位(BIT) 在计算机中存储数据的最小单位 能存一个1或一个0 (2)字节(Byte) 一个字节能存储8个0或1 范围从0000000011111111 即00xFF (3)字(Word) 能存16个0或1 0~0xFFFF (4)双字(Doubleword) 存储32个0或1 0~0xFFFFFFFF 如果要存储的数据超过最大宽度,那么多余的数据将被丢弃 无符号数无符号数的编码规则:数是多少...
微信小程序加载网络字体
关于微信小程序字体更换问题在制作微信小程序换字体时,如果直接使用 1<text decode class="SwiperTitle" style="font-family:宋体 ;">宋体宋体宋体</text> 在电脑预览时,字体确实会变成宋体(下图 但是当在手机上预览时,因为手机并没有“宋体”这个预制的字体,所以手机并不会将字体改成宋体 因此,采用网络字体的方式对字体进行更新 解决思路一个字体文件起码好几兆,所以肯定不能放到本地然后编译进去,只能从网络获取 首先获取一个字体的.ttf文件,然后将这个.ttf文件上传为网络直链地址,最后在小程序里调用这个网络直链地址就完成了对字体的更改。 实现过程1.获取一个字体.ttf文件这里使用.ttf .otf等字体文件都可以 我采用的方法是从字体管家下载字体,因为比较靠谱 打开之后是这样子的 首先我下载了几个字体,大小最好是10M以内的。 然后打开字体备份,对想要的字体进行备份 然后打开备份文件夹,直接备份后在备份文件夹中就能直接找到下载的字体了(这种找....
