異常處理與網絡基礎中的tcp,udp協議
阿新 • • 發佈:2018-08-11
server 數據 ati exc mac地址 成功 soc 不可靠 處理
# 異常處理: # 什麽是異常?異常和錯誤的區別 # Error 語法錯誤 比較明顯的錯誤 在編譯代碼階段就能檢測出來 # Iteration 異常 在執行代碼的過程中引發的異常 # 異常發生之後的效果 # 一旦在程序中發生異常,程序就不再繼續執行了 # try: # # name # [][3] # except NameError: # print("請設置好變量!!") # except IndexError: #分支異常處理 # print(‘請認真!!‘) # # except Exception as e:#萬能異常,常常放在分支異常後面 # # print(e,type(e)) # else: # print(666)#只有不出現錯誤才會執行,若執行成功except,不執行else # finally: # print(777)#不管出沒出現錯誤,finally都會執行 # 自定義異常 # raise NameError(‘這是一個name error的異常‘) # class EvaException(Exception): # def __init__(self,msg): # self.msg = msg # # raise EvaException(‘這是一個什麽什麽錯誤,有什麽問題‘) # 使用異常處理的註意事項 # 斷言 assert raise 主動拋異常 # 異常處理(一般少用異常處理) # try/except # try/except/else # try/except/else/finally # try/except/finally # try/finally # collections模塊 # 數據類型的擴展模塊 # import queue # q = queue.Queue() # print(q.qsize()) # q.put(1) # q.put(‘a‘) # q.put((1,2,3)) # q.put(({‘k‘:‘v‘})) # print(q.qsize()) # print(‘q : ‘,q) # print(‘get : ‘,q.get()) # print(q.qsize()) # deque 雙端隊列 # from collections import deque # dq = deque() # dq.append(2) # dq.append(5) # dq.appendleft(‘a‘) # dq.appendleft(‘b‘) # print(dq) # # print(dq.pop()) # # print(dq) # # print(dq.popleft()) # # print(dq) # print(dq.remove(‘a‘)) # print(dq.insert(2,‘123‘)) # print(dq) # 網絡基礎: # (1)架構:C/S架構,client客戶端和server服務器端,優勢在於充分發揮pc機的性能; # B/S架構,browers瀏覽器和server服務器端,統一了應用的接口 # 1 mac地址 : 是一個物理地址,全球唯一, 類似於身份證 # 2 ip地址: 是一個四位點分十進制,它標識了計算機在網絡中的位置.類似於 學號 # 3 交換機的通信方式: # 廣播 : 吼一嗓子 # 單播 : 一對一 # 組播 : 一對多 # 4 arp協議 : 通過目標ip地址獲取目標mac地址的一個協議. # 5 端口 : 操作系統為本機上每一個運行的程序都隨機分配一個端口,其他電腦上的程序可以通過端口獲取到這個程序 # ip地址 + 端口 能唯一找到某臺電腦上的某一個服務程序 # 6 路由器 : 連接不同網段 , 路由 # 7 網關 : 類似於一個局域網的出口和入口 # 8 網段 : 一個局域網內的ip地址範圍 # 9 子網掩碼 : 子網掩碼 & ip地址 得到網段 # 10 osi 五層模型: # 應用層 : http,https,ftp # 傳輸層 : tcp / udp 四層交換機 四層路由器 # 網絡層 : ip協議 路由器 三層交換機 # 數據鏈路層 : arp協議 以太網交換機 網卡 網橋 # 物理層 : 傳輸電信號 集線器 網線 光纖 # (2).socket模塊 # 這是一個新的模塊 # import socket # # socket # 又叫做套接字 # 有很多種類型, 但是咱們只需要知道兩種就可以了 # sk = socket.socket(family=AF_INET, type=SOCK_STREAM) # family: # 一種: AF_UNIX基於文件類型的套接字(早期socket是源自於unix系統而研發的一個功能, 主要是為了同一臺電腦上, 多個程序直接通信) # unix系統的中心思想是: 一切皆文件 # 一種: AF_INET基於網絡類型的套接字 # type: # 一種是基於TCP協議 # SOCK_STREAM # 一種是基於UDP協議 # SOCK_DGRAM # tcp協議: 可靠的, 面向連接的, 面向字節流形式的傳輸方式 # udp協議: 不可靠的, 不面向連接的, 面向數據報的傳輸方式, 但是它快 # 創建服務器文件: # server_.py內容如下: import socket k1=socket.socket() k1.bind((‘192.168.12.32‘, 8800)) k1.listen() cn,ar=k1.accept() ret=cn.recv(1024).decode(‘utf-8‘) print(ret) cn.close() k1.close() #client客戶端文件client_.py: # v1=socket.socket() # v1.connect((‘192.168.12.32‘, 8800)) # v1.send(‘你好‘.encode(‘utf-8‘)) # v1.close()
異常處理與網絡基礎中的tcp,udp協議