网络编程--多线程 , socketserver
内容补充
python2与python3的区别?
"""
python3对unicode字符的原生支持
Python2中使用ASCII码作为默认编码方式导致string有两种类型str和Unicode , Python3只支持Unicode的string
"""
"""
py2:
unicode v = u"root" 本质上用Unicode存储
(str/bytes) v = "root" 本质上用字节存储 py3:
str v = "root" 本质上用unicode存储
bytes v = "root" 本质上用字节存储
"""
函数作用域
Python的作用域是通过函数划分的,作用域是在编写完成代码就已经生成.
Python中程序的变量不是在哪个位置都可以访问的,访问权限决定这个变量在哪里赋值的.变量的作用域决定了在那一部分程序可以访问哪个特定的变量名称.
Python的作用域一共有4种:
L (Local) 局部作用域
E (Enclosing) 必包函数外的函数中
G (Global) 全局作用域
B (Built-in) 内建作用域
按照L->E->G->B的规则查找
列表表达式
列表表达式是Python内置的一种强大的生成list的表达式
格式: v = [lambda x:x+i for i in range(10)]
网络
路由器或交换机中的DHCP服务自动分配IP地址:(DHCP;自动为局域网内的电脑分配IP)
IP:用4个"."分开的十进制表示 例:192.168.13.11
IP:192.168.13.86
IPV4
00000000.00000000.00000000.00000000
0~255 0~255 0~255 0~255
IPV6 (目前个人基本用不到)
00000000.00000000.00000000.00000000.00000000.00000000
子网掩码:255.255.255.0
192.168.13.86
255.255.255.0
将挡住的IP位数作为网段
为挡住的部分作为可变的值
网关:路由器中连接交换机的接口
网关IP:192.168.13.1 (默认为1)
网络组成了局域网/城域网/广域网
DNS
网络连接:
-域名解析
www.luffycity.com ==> 47.95.64.113
www.oldboyedu.com ==> 101.200.195.98
-连接
sk = socket.socket()
sk.connect(('47.95.64.113',80))
看上面的代码,那么域名和IP的对应关系在哪里?
本地:
win本地电脑:
C:\Windows\System32\drivers\etc\hosts
DNS服务器:全球顶级DNS服务器13台
socketserver
ThreadingTCPServer源码剖析:

初识线程
impor time
impor threading def task(a1,a2,a3):
time.sleep(2)
print("拿快递")
def play():
print('陪女友玩耍')
def Take-out food():
print("去拿外卖") #创建一个线程
#让该线程去执行任务:函数
t1 = threading.Thread(target=task,args=(1,2,3))
#去执行吧
t1.start() #创建一个线程
#让该线程去执行任务:函数
t2 = threading.Thread(target=play))
#去执行吧
t2.start() #创建一个线程
#让该线程去执行任务:函数
t3 = threading.Thread(target=Take-out food))
#去执行吧
t3.start() print("玩扇子")
print("煽风点火")
print("耍贱...")
socket与线程配合
import time
import socket
import threading def task(conn):
time.sleep(5)
data = conn.recv(1024)
print(data)
conn.close() server = socket.socket()
server.bind(('192.168.13.86',8000))
server.listen(5) while True:
conn,addr = server.accept()
t = threading.Thread(target=task, args = (conn,))
t.start()
网络编程--多线程 , socketserver的更多相关文章
- 网络编程 多线程/socketserver模块/ threading.local
线程:进程中负责程序执行的执行单元. 多线程:在1个进程中存在多个线程. 进程只是用来把资源集中在一起,而线程才是cpu上的执行单位. 每个进程都会默认有一个控制线程也叫作主线程. 进程之间是竞争关系 ...
- 网络编程 并发socketserver
网络编程 并发socketserver ipv4.ipv6 ip协议:规定网络地址的协议 B/S架构 C/S架构 bs是cs的一种 B/S是浏览器和服务端架构 C/S是客户端和服务端架构 osi七层协 ...
- python2和3的区别丶网络编程以及socketserver多线程
一丶python2和python3的区别 1.编码&字符串 字符串: python2: Unicode v = u"root" 本质上用unicode存储(万国码) (s ...
- python网络编程socket /socketserver
提起网络编程,不同于web编程,它主要是C/S架构,也就是服务器.客户端结构的.对于初学者而言,最需要理解的不是网络的概念,而是python对于网络编程都提供了些什么模块和功能.不同于计算机发展的初级 ...
- Python之路(第三十三篇) 网络编程:socketserver深度解析
一.socketserver 模块介绍 socketserver是标准库中的一个高级模块,用于网络客户端与服务器的实现.(version = "0.4") 在python2中写作S ...
- Python网络编程(socketserver、TFTP云盘、HTTPServer服务器模型)
HTTP协议? HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型.HTTP是一个无状态的协议. 通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了 ...
- python网络编程:socketserver的基本使用
本文内容: socketserver的介绍 socketserver的使用 socketserver的异步服务端 首发时间:2018-03-21 也可以使用socketserver来创建socket ...
- Linux网络编程--多线程实现echo服务器与客户端“一对多”功能,是网络编程的“Hello World!”
在linux平台下,用多线程实现echo服务器与客户端“一对多”(即是一台服务器可以响应多个客户端的请求).本人写了个demo,和大家一起分享,有不足的地方,请多多指教,我是壮壮熊. 编译时,在后面加 ...
- C#网络编程 多线程和高并发
在任何 TCP Server 的实现中,一定存在一个 Accept Socket Loop,用于接收 Client 端的 Connect 请求以建立 TCP Connection. 在任何 TCP S ...
随机推荐
- socket.io的基本使用
服务端: 1.监听客户端连接: io.on("connection",socket=>{ }); 不分组数据传输:传输对象为当前socket 2.1给该socket所有客户端 ...
- LintCode 两两交换链表中的节点
给一个链表,两两交换其中的节点,然后返回交换后的链表. 样例 给出 1->2->3->4, 你应该返回的链表是 2->1->4->3. 分析:第一次调试的时候用了P ...
- Docker搭建的MySQL容器出现 "Too many connections 1040" 最大连接数修改完未生效的解决方案
原文:Docker搭建的MySQL容器出现 "Too many connections 1040" 最大连接数修改完未生效的解决方案 版权声明:本文为博主原创文章,未经博主允许不得 ...
- 2019.10.20 csp-s模拟测试 lrd试题 反思总结
赶进度赶进度,丢个代码两三句备注一下完事了. day1: 前面两道题没实际写代码怕印象不深所以描述一下大意. T1: 题目大意:给出两个数&.|.^的结果(可能只给出其中某一项或者某两项),求 ...
- 通过inputSplit分片size控制map数目
前言:在具体执行Hadoop程序的时候,我们要根据不同的情况来设置Map的个数.除了设置固定的每个节点上可运行的最大map个数外,我们还需要控制真正执行Map操作的任务个数. 1.如何控制实际运行的m ...
- 2018-8-10-win10-uwp-禁止编译器优化代码
title author date CreateTime categories win10 uwp 禁止编译器优化代码 lindexi 2018-08-10 19:16:50 +0800 2018-2 ...
- linux显示进程的内存映射pmap
pmap命令可以显示进程的内存映射,使用这个命令可以找出造成内存瓶颈的原因. # pmap -d PID 显示PID为47394进程的内存信息. # pmap -d 47394 输出样例: 47394 ...
- tcpdump命令介绍
命令格式为:tcpdump [-nn] [-i 接口] [-w 储存档名] [-c 次数] [-Ae] [-qX] [-r 文件] [所欲捕获的数据内容] 参数: -nn,直接以 IP 及 Port ...
- Adding basic files · lcobucci/jwt@aad22ed · GitHub
Skip to content Features Business Explore Marketplace Pricing This repository Sign in or Sign up ...
- js判断类型为数字的方法实现总汇——原生js判断isNumber()
方法一[推荐]: 最容易想到的是用typeof来判断是否是number类型 ,但是如果为NaN会被认为也是number类型,因此我们需要使用isNaN来排除NaN的情况. function isNum ...