一丶python2和python3的区别

  1.编码&字符串

    字符串:

      python2:

        Unicode    v = u"root"  本质上用unicode存储(万国码)

        (str/bytes)   v = "root" 本质用字节存储

      python3:

        str    v = "root"    本质上用unicode存储(万国码)

        bytes     v = b"root"    本质上用字节存储

    编码:

      python2:   ascii  文件头可以修改#-*-  encoding:utf-8 -*-

      python3:    utf-8  文件头可以修改#-*-  encoding:utf-8 -*-

  2.继承

    python2:   经典类/新式类

    python3:    新式类

  3.范围

    python2:     range/xrange

    python3:      range

  4.输入

    python2:  v1 = raw_input("请输入用户名")

    python3:  v2 = input("请输入用户名")

  5.打印

    python2:  print"XXX"

    python3:  print("XXX")

二丶网络编程

  1.mac

    mac地址是固定的存在于网卡上.每台电脑都不一样

  2.DHCP

    DHCP是一个局域网的网络协议,存在于路由器或交换机中,该协议可以自动的为我们分配IP

    有局域网,广域网,城域网

    ARP协议:ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。

  3.DNS

    网络连接:

      域名解析:

        每一个域名后面都有其对应的IP地址,如:

          www.baidu.com  111.13.100.91

          www.qq.com    111.30.132.101

        连接时:

          sk = socket.socket()

          sk.connect(("111.13.100.91",8080))....

    问题来了,域名和IP的对应关系在哪里?

      本地:

        Win本地电脑:

          C:\Windows\System32\drivers\etc\hosts中

        Linux/Mac电脑:

          /etc/hosts中

    DNS服务器: 全球顶级的DNS服务器只有十三台

三丶socketserver和多线程

  socketserver

    对照图看源码:

    执行serve_forever的相关代码:

  2.多线程

    在多线程的操作系统中,通常是在一个进程中包括多个线程,每个线程都是作为利用CPU的基本单位,是花费最小开销的实体。

import time
import threading def task(a1,a2,a3):
time.sleep(3)
print('拿快递') def play():
print('和女朋友去耍') def wm():
print('去拿外卖') # 创建一个线程
# 让该线程去执行任务:函数
t1 = threading.Thread(target=task,args=(1,2,3,))
# 去执行吧
t1.start() # 创建一个线程
# 让该线程去执行任务:函数
t2 = threading.Thread(target=play)
# 去执行吧
t2.start() # 创建一个线程
# 让该线程去执行任务:函数
t3 = threading.Thread(target=wm)
# 去执行吧
t3.start() print('玩扇子')
print('煽风点火')
print('耍贱...')

  线程好比一个人同时做多件事,就跟孙悟空一样,来一个需求,就把根毛变成自己去做那件事了,再来一个需求就再拔一根变成自己去做,之间互不干扰.有了多线程我们服务器就可以为多个用户同时服务了

示例:我么可以模拟很多人给服务器请求,让服务器去执行,每个请求10秒后完成.代码如下

import time
import threading def task(n):
print('开始执行任务:',n)
time.sleep(10)
print('...')
print('任务%s 执行完毕:'%n) while True:
name = input("请输入任务:")
t = threading.Thread(target=task,args=(name,))
t.start()

多个任务同时进行,并且互不干扰

python2和3的区别丶网络编程以及socketserver多线程的更多相关文章

  1. 网络编程 并发socketserver

    网络编程 并发socketserver ipv4.ipv6 ip协议:规定网络地址的协议 B/S架构 C/S架构 bs是cs的一种 B/S是浏览器和服务端架构 C/S是客户端和服务端架构 osi七层协 ...

  2. Python之路(第三十三篇) 网络编程:socketserver深度解析

    一.socketserver 模块介绍 socketserver是标准库中的一个高级模块,用于网络客户端与服务器的实现.(version = "0.4") 在python2中写作S ...

  3. python网络编程socket /socketserver

    提起网络编程,不同于web编程,它主要是C/S架构,也就是服务器.客户端结构的.对于初学者而言,最需要理解的不是网络的概念,而是python对于网络编程都提供了些什么模块和功能.不同于计算机发展的初级 ...

  4. day05 Java网络编程socket 与多线程

    java网络编程 java.net.Socket Socket(套接字)封装了TCP协议的通讯细节,是的我们使用它可以与服务端建立网络链接,并通过 它获取两个流(一个输入一个输出),然后使用这两个流的 ...

  5. Python网络编程(socketserver、TFTP云盘、HTTPServer服务器模型)

    HTTP协议? HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型.HTTP是一个无状态的协议. 通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了 ...

  6. 【API】网络编程模型、多线程

    1.网络通信编程 1)网络通信模型基础知识 TCP Server: WSAStartup() socket() bind() linsten() accept() send/recv() closes ...

  7. python网络编程socket之多线程

    #coding:utf-8 __author__ = 'similarface' import os,socket,threading,SocketServer SERVER_HOST='localh ...

  8. day31 网络编程,多进程多线程

    今天的内容需要好好整理,概念性的东西比较多,都是需要理解的,这些是基层的理解,后期的很多知识都是要建立在今天的概念基础上的,以下两点是核心内容,必须要理解,自己把自己理解的注释加在里面: 进程就是程序 ...

  9. python网络编程:socketserver的基本使用

    本文内容: socketserver的介绍 socketserver的使用 socketserver的异步服务端 首发时间:2018-03-21 也可以使用socketserver来创建socket ...

随机推荐

  1. 第3章 机器学习的典型应用 3-4 典型应用-ctr预估和协同过滤

    ctr预估,用户点击率的预估.这个算法的名字叫ctr预估,但是它背后算法是线性的逻辑回归. 现在的推荐系统除了可能会用关联规则之外,现在还有一些所谓的更新的协同过滤的算法.

  2. Asp.net 微信企业号网页开发流程

    一.在pageload方法中获取code var code = GetCode(); private string GetCode() { return HttpContext.Current.Req ...

  3. Java堆分析

  4. 在VM12中安装ubuntu系统下的VMTOOLS

    转载自http://www.jb51.net/article/97387.htm 一.下载Ubuntu镜像: Ubuntu官网下载地址 二.创建虚拟机 打开VMware Workstation,点击创 ...

  5. Entity Framework Code-First(8):Configure Domain Classes

    Configure Domain Classes in Code-First: We learned default Code-First Conventions in the previous se ...

  6. 8.使用hydra对端口进行爆破

    如果对开启端口的服务不清楚,请看我之前写的文章:https://www.cnblogs.com/bmjoker/p/8833316.html 2018,网站的防护(sql,xss...)的安全保护也已 ...

  7. 32.我的wafBypass之道

    0x01 搞起 当我们遇到一个waf时,要确定是什么类型的?先来看看主流的这些waf,狗.盾.神. 锁.宝.卫士等等...(在测试时不要只在官网测试,因为存在版本差异导致规则库并不一致) 1.云waf ...

  8. redis系列:通过日志案例学习string命令

    前言 该文章将通过一个小demo将讲述Redis中的string类型命令.demo将以springboot为后台框架快速开发,iview前端框架进行简单的页面设计,为了方便就不使用DB存储数据了,直接 ...

  9. uWSGI + Nginx + Django 部署

    1. uWSGI 服务器 Django 默认使用 WSGI(Python Web Server Gateway ) 作为 Web 服务器,一般仅用来作为测试使用,实际生产环境而是使用 uWSGI 和 ...

  10. jQuery :odd 选择

    <!DOCTYPE html><html><head><meta charset="utf-8"><script src=&q ...