1、C\S 架構 client server瀏覽器
軟件c\s架構:客戶端\服務端架構:京東,淘寶,今日頭條,qq,微信安全
B\S架構:瀏覽器(browser)\服務端>>>統一接口微信
硬件C\S架構:打印機網絡
2、網絡通訊整個流程架構
網線:傳輸電信號socket
集線器:將全部鏈接到集線器的網絡設備聯通起來spa
交換機:升級版的集線器code
網卡:接收電信號server
MAC地址:即物理地址,8C-EC-4B-88-B9-X9 # 前三位廠商編號,後三位生產流水號 對象
單播:單臺pc向交換機發送消息(包含目標ip)
廣播:交換機將消息廣播,對應目的ip的pc接收消息,其餘pc丟棄消息
廣播風暴:網絡擁堵,信息不安全
ip 地址:
ipv4 地址:192.168.15.46 # 4個點分十進制數字
做用,劃分廣播域,一個網段理論上能夠劃分256個地址,0-255
DHCP:自動分配ip地址
Arp表:保存着ip地址和mac地址對應關係
Arp協議:經過ip地址獲取mac地址
子網掩碼:用於計算兩個ip是不是屬於同一網段:
255.255.255.0
源ip地址:192.168.15.46
11000000.10101000.00001111.00101110
11111111.11111111.11111111.00000000
11000000.10101000.00001111.00000000 #192.168.15.0
目標的ip:192.168.16.30 # 192.168.16.0
路由器:轉發消息
路由協議:計算路由轉發消息的最優路徑
端口號:0-65535,肯定電腦上的應用程序
ip地址+端口 = 肯定某個電腦上的某個應用程序
3、初識socket
1 import socket 2 #建立一個socket對象 3 server = socket.socket() #至關於建立了一部電話 4 ip_port = ('192.168.111.1',8001) #建立一個電話卡 5 server.bind(ip_port) #插上電話卡 6 server.listen(5) #監聽着電話,我能監聽5個,接到一個電話以後,後面還能有四我的給我打電話,可是後面這四我的都要排隊等着,等着我第一個電話掛掉,再來第6個的時候,第六我的的手機會報錯 7 print('11111') 8 #等着別人給我打電話,打來電話的時候,我就拿到了和對方的這個連線通道conn和對方的電話號碼addr 9 conn,addr = server.accept() #阻塞住,一直等到有人鏈接我,鏈接以後獲得一個元祖,裏面是連線通道conn和對方的地址(ip+端口) 10 print('22222') 11 print(conn) 12 print('>>>>>>>>>',addr) 13 while True: 14 from_client_data = conn.recv(1024) #服務端必須經過二者之間的鏈接通道來收消息 15 from_client_data = from_client_data.decode('utf-8') 16 print(from_client_data) 17 if from_client_data == 'bye': 18 break 19 server_input = input('明威說>>>>:') 20 conn.send(server_input.encode('utf-8')) 21 if server_input == 'bye': 22 break 23 conn.close() #掛電話 24 server.close() #關手機
1 import socket 2 #建立一個socket對象 3 server = socket.socket() #至關於建立了一部電話 4 ip_port = ('192.168.111.1',8001) #建立一個電話卡 5 server.bind(ip_port) #插上電話卡 6 server.listen(5) #監聽着電話,我能監聽5個,接到一個電話以後,後面還能有四我的給我打電話,可是後面這四我的都要排隊等着,等着我第一個電話掛掉,再來第6個的時候,第六我的的手機會報錯 7 print('11111') 8 #等着別人給我打電話,打來電話的時候,我就拿到了和對方的這個連線通道conn和對方的電話號碼addr 9 conn,addr = server.accept() #阻塞住,一直等到有人鏈接我,鏈接以後獲得一個元祖,裏面是連線通道conn和對方的地址(ip+端口) 10 print('22222') 11 print(conn) 12 print('>>>>>>>>>',addr) 13 while True: 14 from_client_data = conn.recv(1024) #服務端必須經過二者之間的鏈接通道來收消息 15 from_client_data = from_client_data.decode('utf-8') 16 print(from_client_data) 17 if from_client_data == 'bye': 18 break 19 server_input = input('明威說>>>>:') 20 conn.send(server_input.encode('utf-8')) 21 if server_input == 'bye': 22 break 23 conn.close() #掛電話 24 server.close() #關手機
注意:先運行server,而後再運行client,而後你會發現client這個文件再輸出臺的地方讓你輸入內容,你輸入一個內容而後回車,你會發現server那邊的控制檯就輸出了以client發送的內容