cs架構 客戶端服務端架構服務端:提供服務的
客戶端:享受服務的
bs架構:瀏覽器和服務端
網路通訊流程:
集線器:將所有連線上它的電腦全部聯通起來
交換機:公升級版的集線器
網絡卡:接收處理電訊號
廣播 單播
廣播風暴
作用:劃分廣播域
子網掩碼:計算ip位址段,或者判斷ip位址是否屬於同一位址段
dhcp協議:自動獲取ip位址
dns:網域名稱解析
arp協議:通過ip位址獲取mac,因為ip位址不固定,mac是全球唯一的
路由器:**訊息,管理內網
路由協議:計算路由**的最優路徑
埠:標示電腦上某個應用程式
ip位址+埠 =能夠唯一鎖定一台電腦和這個電腦上的某個應用程式
閘道器:把關用的,意思就說所有對外的請求都要經過閘道器
nat技術:網路位址轉換,內網ip位址轉換為公網或者說外網的ip位址
a.硬體c\s架構:印表機。
不管哪個架構,他們都要進行網路通訊,基本都要用socket,我們學習socekt就是為了完成c\s架構專案的開發
#客戶端import
socket
#建立socket物件
client =socket.socket()
#找到伺服器端口,ip位址要用字串,埠要用int 一般在8000以後
server_ip_port = ('
192.168.12.56
',8001)
#連線服務端的應用程式,通過connect方法,引數是服務端的ip位址和埠
client.connect(server_ip_port)
while 1:
to_server_msg = input('
說給服務端聽:')
print('
*****==輸入q退出*****==')
if to_server_msg.upper() == 'q'
: client.send(to_server_msg.encode(
'utf-8
')) #
需要把q停止的資訊傳送給服務端,服務端收到才能關閉服務端的管道
break
else
:
#發訊息,用的是send方法,裡面應該裝bytes 需要把中文編碼
client.send(to_server_msg.encode('
utf-8'))
#服務端通過conn連線通道來收發訊息,通過recv方法,recv裡面的引數是位元組(b),1024的意思1024b=1kb
from_server_msg = client.recv(1024) #
receive
#把bytes解碼成中文
print('
服務端返回的話:
',from_server_msg.decode('
utf-8'))
client.close()
#服務端import
socket
#建立socket物件
server =socket.socket()
#給程式設定乙個ip位址和埠號
ip_port = ('
192.168.12.56
',8001)
#繫結ip位址和埠
server.bind(ip_port)
#監聽ip位址和埠,括號裡面什麼都不用寫(連線的客戶端沒有上限),也可以填數字,填幾次等待著幾個客戶端
server.listen(3)
print('
====開始建立連線====')
#等待建立連線,conn是連線通道,address是客戶端的位址,(阻塞程式)
while 1:
conn,addr =server.accept()
while 1:
#服務端通過conn連線通道來收發訊息,通過recv方法,recv裡面的引數是位元組(b),1024的意思1024b=1kb
from_client_msg = conn.recv(1024)
print('
客戶端發出:
', from_client_msg.decode('
utf-8'))
to_client_msg = input('
回覆客戶端的資訊:')
conn.send(to_client_msg.encode(
'utf-8'))
#關閉通道
conn.close()
注意:先執行server,然後再執行client,然後你會發現client這個檔案再輸出臺的地方讓你輸入內容,你輸入乙個內容然後回車,你會發現server那邊的控制台就輸出了以client傳送的內容
Python學習之路 網路知識
網路是為了把處在不同位置的計算機聯絡起來,使得彼此之間能夠相互通訊。每個ip位址包括兩部分 網路位址和主機位址。此外為了使得ip位址能充分地利用,國際上把ip位址分為a b c d e類位址,每種位址都規定了其起止範圍以及用途。10.0.0.0 10.255.255.255 172.16.0.0 1...
網路程式設計之從UDP聊到Python的socket
udp是user datagram protocol的縮寫,即使用者資料報協議。因為其無需連線的服務,所以傳輸效率高 傳送前時延較小 udp無擁塞控制和重傳機制,也就成就了它盡最大努力服務的性格。socket 中文名 套接字 是程序間通訊的一種方式。我們只要位址 ip port 就可以完成同乙個終端...
python之路 網路通訊協議
網際網路協議按照功能不同分為osi七層或tcp ip五層或tcp ip四層 我們知道網路層,可以實現兩個主機之間的通訊。但是這並不具體,因為,真正進行通訊的實體是在主機中的程序,是乙個主機中的乙個程序與另外乙個主機中的乙個程序在交換資料。ip協議雖然能把資料報文送到目的主機,但是並沒有交付給主機的具...