day 26 網路通訊流程 初識socke
一. ***
C/S架構:客戶端(client)/服務端(server)架構,
B/S架構:瀏覽器(browser) / 服務端(server)架構
軟體cs架構:瀏覽器,qq,微信,陌陌等等
硬體cs架構:印表機
二. 網路通訊的整個流程 ***
集線器:將所有電腦聯通起來
交換機:升級版的集線器
網絡卡:接收處理電訊號
Mac地址:實體地址: 1C-1B-0D-74-43-9A 前三位廠商編號 後三位生產流水號
姑娘的mac地址:約嗎?
Ip地址 IPv4 地址: 192.168.12.11 劃分廣播域
Ip地址段:192.168.12.0 --- 192.168.12.255 同一ip地址段,稱為同一子網,以廣播的形式通訊.192.168.0.0 -- 192.168.255.255
子網掩碼:計算是否屬於同一網段,同一子網 255.255.255.0
目標ip地址是:192.168.12.16
11000000.10101000.00001100.00010000
255.255.255.0
11111111.11111111.11111111.00000000
11000000.10101000.00001100.00000000
192.168.12.0
DHCP協議:自動獲取IP地址
Arp協議:通過ip地址獲取mac地址
域名:www.jd.com
DNS服務端:{‘www.jd.com’:173.16.49.0}
三. 初識socket *****
伺服器端程式碼
import socket
#匯入socket模組
#建立socket物件,建立了一個手機
server = socket.socket()
#給程式設定一個ip地址和埠號,買了個手機卡
ip_port = ('192.168.12.70', 8002)
#繫結ip地址和埠,插卡
server.bind(ip_port)
#監聽ip地址和埠,簡稱開機
server.listen()
print('111111')
#等待建立連線, conn是連線通道,addr是客戶端的地址,阻塞程式
conn, addr = server.accept()
print('222222')
#服務端通過conn連線通道來收發訊息,通過recv方法,recv裡面的引數是位元組(B),1024的意思1024B=1KB
from_client_msg = conn.recv(1024)
print('高旺說:', from_client_msg.decode('utf-8'))
to_client_msg = input('高旺的女朋友說:')
#回覆訊息:通過send方法,引數必須是位元組型別的,
conn.send(to_client_msg.encode('utf-8'))
#關閉通道,關電話,通過close方法
conn.close()
#關閉socket物件,關機
server.close()
客戶端程式碼
#匯入socket
import socket
#建立一個socket物件
client = socket.socket()
#找到服務端的ip地址和埠
server_ip_port = ('192.168.12.11',8002)
#連線服務端的應用程式,通過connect方法,引數是服務端的ip地址和埠,打電話
client.connect(server_ip_port)
to_server_msg = input('高旺說:')
#發訊息,用的send方法,但是呼叫者是client的socket物件
client.send(to_server_msg.encode('utf-8'))
from_server_msg = client.recv(1024)
print('高旺的女朋友說:',from_server_msg.decode('utf-8'))
client.close()