python2和3的区别丶网络编程以及socketserver多线程
一丶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多线程的更多相关文章
- 网络编程 并发socketserver
网络编程 并发socketserver ipv4.ipv6 ip协议:规定网络地址的协议 B/S架构 C/S架构 bs是cs的一种 B/S是浏览器和服务端架构 C/S是客户端和服务端架构 osi七层协 ...
- Python之路(第三十三篇) 网络编程:socketserver深度解析
一.socketserver 模块介绍 socketserver是标准库中的一个高级模块,用于网络客户端与服务器的实现.(version = "0.4") 在python2中写作S ...
- python网络编程socket /socketserver
提起网络编程,不同于web编程,它主要是C/S架构,也就是服务器.客户端结构的.对于初学者而言,最需要理解的不是网络的概念,而是python对于网络编程都提供了些什么模块和功能.不同于计算机发展的初级 ...
- day05 Java网络编程socket 与多线程
java网络编程 java.net.Socket Socket(套接字)封装了TCP协议的通讯细节,是的我们使用它可以与服务端建立网络链接,并通过 它获取两个流(一个输入一个输出),然后使用这两个流的 ...
- Python网络编程(socketserver、TFTP云盘、HTTPServer服务器模型)
HTTP协议? HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型.HTTP是一个无状态的协议. 通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了 ...
- 【API】网络编程模型、多线程
1.网络通信编程 1)网络通信模型基础知识 TCP Server: WSAStartup() socket() bind() linsten() accept() send/recv() closes ...
- python网络编程socket之多线程
#coding:utf-8 __author__ = 'similarface' import os,socket,threading,SocketServer SERVER_HOST='localh ...
- day31 网络编程,多进程多线程
今天的内容需要好好整理,概念性的东西比较多,都是需要理解的,这些是基层的理解,后期的很多知识都是要建立在今天的概念基础上的,以下两点是核心内容,必须要理解,自己把自己理解的注释加在里面: 进程就是程序 ...
- python网络编程:socketserver的基本使用
本文内容: socketserver的介绍 socketserver的使用 socketserver的异步服务端 首发时间:2018-03-21 也可以使用socketserver来创建socket ...
随机推荐
- EchoServer和EchoClient模型的改进1之多线程
在之前的EchoServer模型个EchoClient模型中,客户端和服务端只是单纯的一一对应的关系,如果存在多个客户端和一个服务端,这就需要具体处理了.在这里我们明显想到的第一种方案是使用多线程处理 ...
- 面试题: mysql 数据库去重 已看1 不好使
mysql去重面试总结 前言:题目大概是这样的. 建表: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 CREATE TABLE `test2` ( `id` ...
- Luogu 2900 [USACO08MAR]土地征用Land Acquisition
斜率优化dp. 首先发现如果存在$x$和$y$使得$len(x) \geq len(y)$并且$wid(x) \geq wid(y)$,那么$y$直接不考虑就好了,因为在买$x$的时候就把$y$顺便带 ...
- 引用静态资源的url添加版本号,解决版本发布后的浏览器缓存有关问题
在日常的工作中,我们经常会遇到页面文件(html,jsp等)中引用的js,css,图片等被修改后,而浏览器依然缓存着老版本的文件,客户一时半会看不到修改后的效果,同时也给生产环境的版本发布带来了一些问 ...
- SQL Server 查询分析器提供的所有快捷方式(快捷键)
SQL Server程序员经常要在SSMS(SQL Server Management Studio)或查询分析器(2000以前)中编写T-SQL代码.以下几个技巧,可以提升工作效率. 以下说明以SS ...
- ASP.NET MVC 小牛之旅1:何谓MVC
在学习ASP.NET MVC之前首先了解什么 是MVC ? MVC不是一种语言,严格来说也不算一个技术,而是开发时所使用的一种架构(框架),它就像是一种开发观念,或是一个设计样式. MVC让软件开发的 ...
- Leetcode 第136场周赛解题报告
周日的比赛的时候正在外面办事,没有参加.赛后看了下题目,几道题除了表面要考的内容,还是有些能发散扩展的地方. 做题目不是最终目的,通过做题发现知识盲区,去研究学习,才能不断提高. 理论和实际是有关系的 ...
- Linux系列教程-----Linux安装centos6.8
转发:https://www.cnblogs.com/ysocean/p/7689146.html
- 洛谷P3146 [USACO16OPEN]248
P3146 [USACO16OPEN]248 题目描述 Bessie likes downloading games to play on her cell phone, even though sh ...
- Mac安装vue
Mac安装vue 一.安装brew 打开终端运行以下命令: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com ...