03 2018 档案

摘要:一、文件传输包括两部分,服务端收发文件和客户端(即用户)收发文件。 收发文件与远程执行命令的程序原理是一样的,比如客户端下载文件的过程: 1、客户端提交下载命令; 2、服务端接收命令,解析,执行下载文件的方法,即以读的方式打开文件,利用for循环读出一行行内容, 然后发送(send)给客户端。 3、 阅读全文
posted @ 2018-03-31 03:30 暮光微凉 阅读(1556) 评论(0) 推荐(0)
摘要:一、粘包现象原理分析 1、我们先来看几行代码,从现象来分析: 测试程序分为两部分,分别是服务端和客户端 服务端.py 客户端.py 由以上程序代码,我们不难发现,粘包发生的情况主要有两种:一种是第一次接收的字节数据小于发送的数据量,再次接收时,便会粘包;另一种是第 一次准备接收的字节数超过了发送的数 阅读全文
posted @ 2018-03-29 21:07 暮光微凉 阅读(825) 评论(0) 推荐(0)
摘要:一、Socket套接字实现通信循环 所谓通信循环,简单理解就是客户端可以给服务端循环发送信息并获得反馈的过程。 1、基础版 通信循环的程序分为两部分,即两个python模块,分别为客户端.py和服务端.py 第一部分:服务端.py 第二部分:客户端.py 2、改进版 上面的程序代码其实是存在bug的 阅读全文
posted @ 2018-03-29 19:36 暮光微凉 阅读(430) 评论(0) 推荐(0)
摘要:一、知识回顾 何为TCP协议? TCP协议是一种面向连接的,可靠的,基于字节流的传输层通信协议,采用全双工通信。 二、TCP建立连接时的三次握手 1、直观理解版: 三次握手即表示TCP连接时,客户端(以下用A表示)和服务端(以下用B表示)之间建立联系的三个过程: First--> A向B发起连接请求 阅读全文
posted @ 2018-03-29 17:58 暮光微凉 阅读(2290) 评论(0) 推荐(1)
摘要:一、Socket介绍 1、什么是socket? Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部。 当你想给另一台计算机发消息,你知道 阅读全文
posted @ 2018-03-29 00:50 暮光微凉 阅读(467) 评论(0) 推荐(0)
摘要:一、何谓C/S架构 C指的是client(客户端软件),S指的是Server(服务端软件),既然我们的的标题是网络编程基础, 那我们就一起来学习怎样写一个C/S架构的软件,实现服务端与客户端软件基于网络的通信。 二、必备计算机基础知识 1、众所周知,我们开发的软件都是应用软件,必须运行在操作系统上, 阅读全文
posted @ 2018-03-28 00:17 暮光微凉 阅读(1889) 评论(0) 推荐(0)
摘要:一、异常处理 1、异常的概念 异常是错误发生的信号,一旦程序出错,并且程序没有处理这个错误,那个就会抛出异常,并且程序的运行随即终止。 2、错误种类 分两种,第一种是:语法错误,这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正。 常见语法错误: #TypeError:int类 阅读全文
posted @ 2018-03-27 20:15 暮光微凉 阅读(2946) 评论(0) 推荐(0)
摘要:一、元类的介绍 1、知识储备--了解exec 1.1、示例: g = {'a':6, 'b':8} l = {} exec(''' global a,i a = 66 i = 99 y = 100 ''',g,l) print(g) # {'a': 66, 'b': 8, '__builtins__ 阅读全文
posted @ 2018-03-27 13:42 暮光微凉 阅读(213) 评论(0) 推荐(0)
摘要:接上一篇,内置方法续集: 六、__str__,__repr__ 和 __format__ 1、作用:__str__,__repr__ 改变对象的字符串显示 __format__ 自定制格式化字符串 2、示例: #!/usr/bin/env python3 #-*- coding:utf-8 -*- 阅读全文
posted @ 2018-03-27 12:49 暮光微凉 阅读(233) 评论(0) 推荐(0)
摘要:一、反射 1、概念:主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。简而言之,就是自身调用自身即可实现已定义的某一功能,以达到简化程序的作用。 2、python面向对象中的反射是指通过字符串的形式操作对象相关的属性。因为python中一切事物都是对象,所以都可以使用反射。一句话,就是通过 阅读全文
posted @ 2018-03-26 01:09 暮光微凉 阅读(218) 评论(0) 推荐(0)
摘要:一、类中函数的分类 类中定义的函数分为两大类,分别是绑定方法和非绑定方法。 二、绑定方法 1、定义:绑定给谁,谁来调用就自动将它本身当作第一个参数传入。 2、绑定到类的方法:用classmethod装饰器装饰的方法,是一种为类量身定制的方法。 使用方法:类名.boud_method(),自动将类当作 阅读全文
posted @ 2018-03-24 17:09 暮光微凉 阅读(288) 评论(0) 推荐(0)
摘要:一、封装--隐藏属性 1、从封装的本意上理解,封装就是将一些东西放到一个盒子或袋子里包起来,然后密封起来。 如果按照这种理解的话,封装就等于“隐藏”,但是这是不准确的,很片面。 2、那么我们先来看下怎样隐藏属性吧! 在Python中用 双下划线开头 的方式将属性隐藏起来(也可看成是设置成私有的) 3 阅读全文
posted @ 2018-03-24 01:29 暮光微凉 阅读(261) 评论(0) 推荐(0)
摘要:一、多态 1、定义:指的是一类事物的多种形态,如水有液体、气体和固体三种形态, 动物有人、猫、狗等存在形态。 2、示例: 二、多态性 1、定义:指的是可以在不考虑对象的类型的情况下而直接使用对象。 2、多态性的类型可分为静态多态性和动态多态性。 静态多态性:任何类型都可以用运算符+进行运算。 动态多 阅读全文
posted @ 2018-03-23 13:13 暮光微凉 阅读(442) 评论(0) 推荐(0)
摘要:一、接口与归一化设计 1、接口 <1>含义:自身提供给使用者来调用自身功能的方式方法或入口。 <2>Python中没有相对应的关键字,需要调用,所以我们借用Java中的interface接口关键字来加以说明。 特点:1、接口是一组功能的集合,而不是一个功能; 2、接口的功能用于交互,所有的功能都是p 阅读全文
posted @ 2018-03-22 23:33 暮光微凉 阅读(367) 评论(0) 推荐(0)
摘要:1、含义:组合指的是,在一个类中以另外一个类的对象作为数据属性,称为类的组合。 2、组合与继承都是有效地利用已有类的资源的重要方式。但是二者的概念和使用场景不同。 <1>继承的方式 通过继承建立了派生类与基类之间的关系,它是一种'是'的关系,比如猫是动物,人是动物。 当类之间有很多相同的功能,提取这 阅读全文
posted @ 2018-03-20 22:59 暮光微凉 阅读(213) 评论(0) 推荐(0)
摘要:一、继承 1、含义:继承指的是类与类之间的关系,是一种什么“是”什么的关系,继承的功能之一就是用来解决代码重用问题。 2、特点:继承是一种创建新类的方式,在Python中,新建的类可以继承一个或多个父类,而父类又可以称为基类或超类,新建的类称为派生类或子类。 3、继承的分类 Python中类的继承可 阅读全文
posted @ 2018-03-20 20:56 暮光微凉 阅读(256) 评论(0) 推荐(0)
摘要:一、含义 python中一切皆为对象,且python3中类与类型(常见数据类型如列表字典等)是一个概念,类型就是类。 二、实例 再比如: 三、面向对象练习 1、编写一个类,批量生产对象,并统计产生对象的次数 #!/usr/bin/env python3 #-*- coding:utf-8 -*- c 阅读全文
posted @ 2018-03-20 13:48 暮光微凉 阅读(2513) 评论(0) 推荐(0)
摘要:一、属性查找 1、类有两种属性:数据属性和函数属性 <1> 类的属性数据是所有对象共享的。 2、类的函数数据是绑定给对象用的,称为绑定到队象的方法。 二、绑定方法 1、定义类并实例化出对象 注意:类中定义的函数,没有被任何装饰器修饰时,是类的函数属性,类可以使用,但必须遵循函数的参数规则,有几个参数 阅读全文
posted @ 2018-03-20 13:31 暮光微凉 阅读(278) 评论(0) 推荐(0)
摘要:一、类与对象的概念 类即是类别、种类的意思,是面向对象最重要的概念,在上一篇文章里我已经论述了,对象就是特征和技能的结合体,而类是一系列对象相似的特征与技能的结合体。现实世界中,是先有对象才有类的,而在我们面向对象编程的过程中却是不同的,我们必须先定义类,才能用类去产生(实例化)对象,这一点是最主要 阅读全文
posted @ 2018-03-20 12:57 暮光微凉 阅读(303) 评论(0) 推荐(0)
摘要:函数1、函数的原型和调用(函数在使用前必须定义或者声明) #include<stdio.h> int max(int a,int b); //函数声明 int main(void) { int a = 3; int b = 21; max_one = max(a,b); printf("%d\n", 阅读全文
posted @ 2018-03-14 21:08 暮光微凉 阅读(372) 评论(0) 推荐(0)
摘要:一、随机数产生函数 1、需要加入头文件 #include<stdlib.h> 和 #include<time.h> 2、Rand是伪随机数产生器,每次调用rand产生的随机数是一样的。 3、如果调用rand之前先调用srand就可以出现任意的随机数。 4、只要能保证每次调用srand函数的时候,参数 阅读全文
posted @ 2018-03-12 21:29 暮光微凉 阅读(3355) 评论(0) 推荐(0)
摘要:一、字符串与字符串数组 1、字符数组的定义 char array[100]; 2、字符数组初始化 char array[100] = {'a','b','c'}; //array[0] = 'a' array[10] = 0 char aray[100] = "abcdef"; char aray[ 阅读全文
posted @ 2018-03-11 21:36 暮光微凉 阅读(40309) 评论(0) 推荐(0)
摘要:一、数组之一维数组 1、一维数组的定义 int array[3]; //定义了一个一维数组,名字叫array,一共有三个元素,每个元素都是int类型。 array[0] = 10; array[1] = 20; array[2] = 30; array[3] = 40; //错误,,没有array[ 阅读全文
posted @ 2018-03-11 17:20 暮光微凉 阅读(570) 评论(0) 推荐(0)
摘要:1、char类型 char c;定义了一个char变量 'a' ; char常量 char的本质就是一个整数,一个只有一个字节大小的整数 char c; 定义一个有符号的char unsigned char b; 定义一个无符号的char c = 4; //c等于一个整数 -->4 c = '4'; 阅读全文
posted @ 2018-03-11 01:47 暮光微凉 阅读(407) 评论(0) 推荐(0)
摘要:1、#include<stdio.h> include 是要告诉编译器,包含一个头文件 在c语言中,任何库函数调用都需要提前包含头文件 <头文件> 代表让c语言编译器去系统目录下需找相关头文件。(系统库函数) "头文件" 代表让c语言编译器去用户当前目录下寻找相关头文件。(自定义头文件) 2、mai 阅读全文
posted @ 2018-03-11 00:28 暮光微凉 阅读(515) 评论(0) 推荐(0)
摘要:一、面向过程 1、面向过程:核心是过程二字,过程指的是解决问题的步骤,好比如设计一条流水线,是一种机械式的思维方式。 就是程序从上到下一步步执行,一步步从上到下,从头到尾的解决问题 。基本设计思路就是程序一开始是要着手解决一个大的问题,然后把一个大问题分解成很多个小问题或子过程,这些子过程再执行的过 阅读全文
posted @ 2018-03-10 19:12 暮光微凉 阅读(15156) 评论(1) 推荐(2)