WebServer构建
注意:该项目是采用C语言调用 WindowsAPI 进行实现的,如果不掌握简单的网络通信协议和C语言与Windows API 编程请先掌握后再来看。
什么是协议,理解IP地址和端口的概念作为新时代标杆的我们,已经离不开手机,离不开网络。对于互联网大家可能耳熟能详,但计算机网络的出现比互联网要早很多。
什么是协议有的人说英语,有的人说中文,有的人说德语,说同一种语言的人可以交流,不同的语言之间就不行了。如果语言不同则需要翻译,否则两人之间无法沟通,或者约定一下,我们都说英语,这个约定就相当于协议。网络协议是通信计算机双方必须共同遵从的一组约定。它的三要素是:语法、语义、时序
计算机网络沟通用什么TCP / IP 传输控制协议:是指能够在多个不同网络间实现信息传输的协议簇。TCP / IP 协议不仅仅指的是TCP 和 IP 两个协议,而是指一个由 FTP、SMTP、TCP、UDP、IP 等协议构成的协议簇,只是因为 TCP / IP 协议中 TCP 协议和 IP 协议最具有代表性,所以被称为 TCP / IP 协议。
端口什么是端口设备与外界通讯交流的出口。端口就好比一个房子的门,是出入 ...
C语言逻辑流程
4.0. 函数程序的最小独立单元 - 语句程序:为解决某一问题而设计的一系列有序指令的集合。数据说明:数据的描述(数据的名称、类型、和初值等)语句:如何处理数据的描述
函数的定义:函数就是对某一特定功能的抽象函数的作用:代码重用,模块化(便于定位错误)例:编写一个加法函数,参数为两个值,无返回值。
函数的分类
无参函数
通过用来执行一些功能比较单一的语句例如:getchar()
有参函数
通过处理传递过来的参数将函数值返回给主调函数
Sin(),cos()
库函数
库函数分为标准库函数和第三方库函数。库函数的特点:右C语言提供;用户无需定义,也不必再程序中做类型说明,只想要在程序前包含有该函数的头文件。典型的如:system()
函数定义的语法格式:函数定义有4个要素:参数列表,返回类型,函数名和函数体,参数列表和返回值类型,函数名用于和程序中其他实体区分,而函数体是一段可执行的代码块,实现特定的算法或功能。函数调用的两种方式
函数调用有两种类型,一是”先定义,后调用”,这要求函数定义和调用语句在同一个文件内,编译器能从函数定义中提取函数的参数列表、输出类型等接口信息。 ...
初识汇编
汇编语言是用计算机的思维去操作计算机。
汇编语言概述汇编语言是直接在硬件上工作的编程语言,首先要了解硬件系统的结构(重点主要在:CPU与内存),才能有效的应用汇编语言对其编程。汇编学习的重点在如何利用硬件系统的编程结构和指令集有效灵活的控制系统进行工作。
机器语言
机器语言是机器指令的集合。
机器指令展开来讲就是一台机器可以正确执行的命令。
指令:01010000(PUSH AX)把X推进堆栈电平脉冲:表示电子信号的浮点。0为平1为凸。早期的程序员将0、1数字编程的程序代码打在纸带或卡片上,1打孔、0不打孔,再将程序通过纸带机或卡片机输入计算机,进行运算。后来,逐渐使用高科技(继电器、晶体管、石英震动),但打孔是始祖。例如:S = 768 + 12288 - 1280机器码:101100000000000000000011000001010000000000110000001011010000000000000101假如将程序错写成以下,请找出错误:1011000000000000000000110000010100000000010100000101101000000000000 ...
C语言基本语法(下)
3.5.0 运算符与表达式算术运算符是用来进行基本的数学运算的,它的最终计算结果仍然是数值。算术运算符和数学中的算术运算符有很多相似之处,如优先级、综合性等。也有同数学运算符运算不同的地方,比如数学中计算1.1/2,不区分参与运算的对象是整数还是实数,最终的计算结果就是数学上真实的值;而C中,是区分参与运算的对象和数据类型的。运算规则:先乘除后加减,有括号先算括号里的。算术运算符:
运算符
说明
属性
+
加法运算符
或表示正值,如3+2,+1
-
减法运算符
或表示负值,如3-2,-8
*
乘法运算符
如4*5
/
除法运算符
如5/3
%
求余运算符
如5%3
C语言规定:两个整数相除的结果整数,小数部分被舍弃。例如:7/3 的结果值是2不是2.3333,而7.0/3的结果是2.333%运算符只能用于整数相除求余,运算结果的符号与被除数相同。
当除号两边都是整型量时,叫做整除,运算结果只保留整数部分。当除号任何一边有实型量时,运算结果是实数。%要求两侧均为整型数据演示:10 和 2取余
运算符优先级:
优先级
运算符
名称含意
使用形式
结合方 ...
C语言基本语法(上)
3.1 什么是变量变量是指其值可以变化的量。计算机中,指令代码、数据都存储与内存中。变量也需要存储在内存中。在计算机中,每个变量都被分配了一块内存空间,在这些空间里存储的就是变量的值。变量之所以可以变化,就是这个存储空间可以存储不同的数值。存储空间里的值变化,则变量对应的值也变化。同一时间,内存空间里只能保存一份值,新值冲掉原来的值,每个内存单元都有编号,这些是内存的地址。
3.1.1 什么是常量与变量常量就是计算机内存里面不变的数据。变量就是计算机内存里需要并且经常改变的数据举例说明:变量就是租房子。因为会经常变动常量就是买房子。基本不会变
3.1.2 变量的概念与命名规则
变量名定义:定义:
程序中用于标识常量、变量、函数的字符序列组成:只能由字母、数字、下划线组成,第一个字符必须是字母或下划线大小写有区别不能使用C语言的关键字举例说明:给变量起名,就好比开房
变量的语法
变量类型变量名;变量名 = 值;简写:变量类型变量名 = 值;
变量名要有意义:
首先要保证的就是这个变量的名字要有意义。什么叫意义?举例:学生,年龄,身高,姓名现阶段给变量起名字的时候都是以字母开头后 ...
C语言特性
2.0 C语言开发环境搭建
Visual studio(全宇宙最强IDE)
记得勾选C++就可以
2.1 C语言常用命令Dir:列出当前目录下的文件以及文件卷md:创建目录rd :删除目录cd:进入指定目录cd..:退回上一级目录cd/:退回根目录del:删除文件exit:退出DOScl:编译和链接注意要点:
使用Visual studio自带编译器执行
不在同一盘符内不可执行需要进入到程序所在盘符(不用CD)
进入盘符之后需要CD进入文件卷,进入文件卷之后再CI编译和链接
注意指令间的空格
2.1.1 练习:使用命令行生成一个关机程序#include <stdlib.h>void main () {system("shutdown -s -t 600");}
编译:cl .c生成取消程序Main函数是主要程序,项目中必须有,仅只允许有一个,它是一个程序的入口。
2.2.1 system(“pause”)和getchar()的区别相同点:两者都是让程序暂停区别:
getchar(); 读取一个字符
System(“pau ...
C语言概述
1.1.1 什么是C语言C语言就是和电脑进行交流的语言。学习C语言是为了进阶C++。
1.1.2 什么是软件软件:一系列按照特定顺序组织的计算机数据和指令集合。常见的软件:系统软件:如:DOS、Windows、Linux、IOS、Android等。应用软件:如:微信、扫雷、迅雷、QQ等。软件的出现实现了人与计算机之间的更好的交互。交互方式:自然交互界面:声音控制、触摸屏手势识别。图形化界面:这种方式简单直观,使用者易于接受,容易上手操作。命令行方式:需要一个控制台,输入特定的指令,让计算机完成一系列操作。较为麻烦,需要记录住一些命令。
1.1.3 计算机信息存储位(Bit):度量数据的最小单位字节(Byte):最常用的基本单位,一个字节有8BitK :1K = 1024 byteM(兆):1M = 1024 KG(吉):1G = 1024 MT (太):1T = 1024 G
1.1.4 进制的概念注意:计算机是用二进制存储数据的。十进制: R=10 数字集 0123456789二进制: R=2 数字集 01八进制: R=8 数字集 01234567十六进制:R=16 数字集 ...
Windows 游戏编程 — WinMain
#include <Windows.h>Int WINAPI WinMain(_In_ HINSTANCE hInstance,_In_opt HINSTANCE hPrevInstance,_In_ LPSTR lpCmdine,_In_ int nCmdShow){ MessageBox(NULL,L"你好,Visual Studio",L"消息窗口",0); Return 0;}
WINAPI 其实就是 _stdcall 有时候也会写作 CALLBACK 它和 WINAPI 等效WinMain 是Windows程序的入口函数
WinMain的第一个参数:HINSTANCE类型的hInstance,它表示该程序当前运行的实例句柄。我们可以对这个类型HINSTANCE进行字面上的理解,h前缀表示这个参数的类型为handle(句柄),句柄的意思,而后面的Instance中文意思是实例,将两个意思结合起来,所以这个类型就是实例句柄。hInstance其实就是一个数值。当一个程序在Windows下运行时, ...
TypeScript 程序流程
运算符算术运算符
运算符
说明
+
加号
-
减号
*
乘号
/
除号
%
取余(取模)
++ | –
自增 | 自减
比较运算符
运算符
说明
>
大于
<
小于
>=
大于等于
<=
小于等于
==
等于
===
等于(不仅值还包括类型)
!=
不等于
!==
不等于(不仅值还包括类型)
TypeScript
let num = 2 + 3;let num = 2 - ( 3 + 3);// 取余let num = 10 % 3;document.write(num); // 输出为 1 取余等于(3*3 = 9)余 1// ++自增num = num + 1;num ++;++ num;// 在输出中++是程序会先打印然后执行++操作document.write(num++ + "");document.write(num + "");//如果要先++再使用可以采用document.write(++num + "" ...
TypeScript | JavaScript 变量与常量
语句介绍输出语句
document.write(); 只支持输出为字符串类型
TypeScript
document.write("Hello World");
JavaScript
document.write("Hello World");
可产生变化的输出语句(通过变量):
TypeScript
// 声明变量(let或者Var):let PersonName = "Hello World";PersonName = "你好,世界";document.write(PersonName);
JavaScript
var PersonName = "Hello World";PersonName = "你好,世界";document.write(PersonName);
const 常量无法改变
TypeScript
// 声明常量const tmp = "Hello";document.write(tmp); ...