python之路 網路程式設計之socket

2022-09-01 21:33:22 字數 2478 閱讀 8643

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協議雖然能把資料報文送到目的主機,但是並沒有交付給主機的具...