標籤:路由 分配 idt 任務 accept 子網 區別 serve image
內容補充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台
socketserverThreadingTCPServer源碼剖析:
初識線程
impor timeimpor threadingdef 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 timeimport socketimport threadingdef 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