- 博客(19)
- 收藏
- 关注
原创 inline内联函数
1、什么是内联函数?inline修饰的函数称之为内联函数,内联函数是一种编程语言结构,在编译阶段在函数调用点代码直接展开。2、内联函数如何工作的?对于任何内联函数,编译器在符号表里放入函数的声明(包括名字、参数类型、返回值类型)。如果编译器没有发现内联函数存在错误,那么该函数的代码也被放入符号表里。在调用一个内联函数时,编译器首先检查调用是否正确(进行类型安全检查,或者进行自动类型转换...
2019-08-04 16:23:26 326
原创 将字符串转换为数字(a_to_i)
大部分人看到这样的题目,觉得很简单,很多人就会写出如下程序:int My_atoi(const char* str){ int val = 0; while(*str != '\0') { val = val * 10 + *str - '0'; str++; } return val;}这个程序是没有问题的,但是...
2019-07-22 20:34:35 7682 3
原创 文件传输项目
上传文件项目:实现上传文件,首先要建立客户端与服务器的连接,具体思路是:客户端发送一个命令或带参数的命令,服务器收到以后执行相应的操作,并且将执行结果返回给客户端;这一部分的可以实现ls和ps以及ls –a和ps –f带参数的命令等功能。上传和下载文件的思路:客户端发送上传或下载以及所操作的文件,服务器收到以后判断是上传还是下载,然后判断该文件是否有效,不能上传或下载,返回错误或文件不存在...
2019-06-12 19:59:54 528
原创 如何用UDP实现可靠传输?
1、实现方法:(1)将实现放到应用层,然后类似于TCP,实现确认机制、重传机制和窗口确认机制;(2)给数据包进行编号,按顺序接收并存储,接收端收到数据包后发送确认信息给发送端,发送端接收到确认信息后继续发送,若接收端接收的数据不是期望的顺序编号,则要求重发;(主要解决丢包和包无序的问题)2、已经实现的可靠UDP:(1)RUDP 可靠数据报传输协议;(2)RTP 实时传输协议...
2019-05-16 14:01:15 4002
原创 I/O复用 - select、poll、epoll
1、select:(1)作用:在一段指定时间内,监听用户感兴趣的文件描述符上的可读,可写和异常等事件;(2)函数: int select(int nfds, fd_set* readfds, fd_set* writefds, fd_set* execptfds, struct timeval* timeout); nfds:被监...
2019-05-01 15:56:11 248
原创 socket编程相关的函数
1、主机字节序和网络字节序的转换unsigned short int htons(unsigned short int hostshort);(比较常用的之一)将短整型的主机字节序转换为网络字节序数据,htons是host to network short;短整型一般用来转换端口号,长整型一般用来转换IP地址;2、IP地址转换函数in_addr_t inet_addr(cons...
2019-04-17 19:53:39 521
原创 四种强制类型转换
1、static_cast <type_id> (expression)(把expression类型转换为type_id类型)用于类层次结构中基类和派生类之间指针或引用的转换:有上行转换和下行转换; 上行转换:派生类--->基类(安全) 下行转换:基类--->派生类(不安全,没有动态类型检查)用于基本数据类型之间的转换(由开发人员保证...
2019-04-17 00:14:24 1426
原创 指针和数组,指针和引用,new/delete和malloc/free的联系或区别
1、指针和数组(1)数组:是存放一定数量的变量的内存空间;直接输出数组名可以得到数组首元素的地址;数组的元素在内存中是连续存放的(存放在静态存储区或栈上);(2)指针:指针变量是用来存放某种类型的地址的变量;指针很灵活,存储空间不能确定;(3)二者联系:一个数组名可以复制给一个指针,赋值后的指针指向数组的首元素;数组名可以向指针一样运算,Eg:*(arr + 1)...
2019-04-15 21:02:19 420
原创 static关键字
1、static的使用:C语言:局部静态变量,外部静态变量和外部静态函数C++:静态数据成员,静态成员函数2、static修饰变量:具有隐藏的作用,加static后,变量只能在本文件使用;会在程序开始运行时就完成初始化,也是唯一一次初始化,且默认初始化为0;全局变量和static变量存储在静态存储区3、static修饰函数:具有隐藏的作用,加static后,函数只能...
2019-04-14 17:35:07 89
原创 HTTP通信协议---超文本传输协议
1、概念:超文本传输协议,是用于从万维网服务器传输超文本到本地浏览器的传送协议。浏览器作为HTTP客户端通过URL向HTTP服务端即web服务器发送所有请求。2、特点:简单快速、灵活、无连接(每次连接只处理一个请求)、无状态(对于事务处理没有记忆能力)、支持B/S和C/S模式。3、HTTP请求报文包括:请求行、请求头部、空行、请求数据; HTTP响应报文包括:状态行、消息报头...
2019-04-14 00:00:11 867
原创 三次握手和四次挥手
1.三次握手:(1)目的:连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号,并交换TCP窗口大小信息;(2)过程:(在socket编程中,客户端执行connect()时进行三次握手)如上图所示,第一握手进行后,客户端处于SYN_SENT状态,客户端的SYN报文服务器收到后,服务器处于LISTEN状态,在服务器端第二次握手进行后,服务器端处于SYN_RECV状态,...
2019-03-17 19:03:38 90
原创 TCP/IP五层协议
1.TCP/IP的五层协议:2.分层的目的:(1)将网络的通信过程划分为小一些、简单一些的部件,有助于各个部件的开发、设计和故障排除;(2)通过网络组件的标准化,允许多个供应商开发,鼓励产业标准化;(3)允许各种类型的网络硬件和软件相互通信;(4)防止某一层的改动影响到其它层,有利于开发(主要)。3.各层的主要协议:(1)应用层:HTTP(超文本传输协议), HTT...
2019-03-17 15:43:54 20289
原创 Typedef与define
宏定义define只是简单的字符替换,并不会检查错误,如果不小心写错了,它还是会带入程序中,然后在编译时进行错误查找。例如: #define R 9 int i=R*4;//相当于i=9*4;如果把9写成了g,它还是会带入等式,i=g*4;在编译时就会报错。 类型定义typedef给已有的类型换一个名字,如果写错了系统会自动报错,这一点与宏定义define不同,例...
2018-09-22 00:18:33 137
原创 进制转换的简单运算
常见的进制转换就是十进制、二进制、八进制、十六进制之间的转换,那么如果给你一个等式,让你判断在哪种进制下该等式成立?这类型的题该怎么求解。接下来通过两个例题讲解一下:例1. 如果等式 15*4=112 成立,那么用了下列哪一种进制? A. 6 B. 7 C. 8 D. 9第一种比较笨的办法就是将选项带入,把15、4、112分别转换,看哪一个成...
2018-06-02 12:16:53 2623
原创 如何逆序输出一个整数
给出一个整数,将它逆序输出,首先求出它是一个几位数,利用for循环将数字从高位到低位分别输出。例如1234这个数,首先通过for循环求出,它是一个4位数,然后1234第一次除以1000,得到1并输出,1234再对1000取余,去掉1得到234,第二次234除以100,得到2并输出,234再对100取余,去掉2得到34,以此类推进行循环,得到的就是4321.下面是该函数的代码实现:void Inve...
2018-05-31 19:08:10 27837 6
原创 指针的应用举例
下面是一个交换a与b之间值的一个程序:#include<stdio.h>void Swap_error1(int a,int b){ int tmp; tmp=a; a=b; b=tmp; //printf("%d,%d",a,b);//因为打印函数要尽量使用在主函数中,所以我们在主函数进行打印}int main(){ int ...
2018-05-26 20:07:24 1063
原创 指针及指针变量
指针是C语言中的一个重要概念,也是C语言的一个重要特色,所以学好指针对学好C语言有重要作用。本篇博客就介绍指针和指针变量的相关定义知识。&a就是得到a的地址,其实“指针==地址”,int *p就是定义一个整型地址(指针)变量int a=10;//整型变量存放整型值double b=1.24;//浮点型变量存放浮点型值int *p=&a;//整型地址变量存放整型地址值 ...
2018-05-26 19:40:08 8983
原创 有关C语言的精度问题
再精准的仪器都会有误差,包括计算机,所以在写程序时要考虑到误差值。通常会在程序开始部分规定一个精度EPS,计算结果在这个误差值正负范围内,则为正确,若超出这个范围,则错误。下面就是一个需要考虑误差的程序例子:求一元二次方程ax^2+bx+c=0的解(分相等实根和不等实根情况)。(1)a=0,则x1=x2=(-c)/b;(2)a不等于0:b^2-4ac>0;有两个不等的实根 ...
2018-05-06 14:59:50 7607
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人