cs架構 客戶端服務端架構a.硬體c\s架構:印表機。服務端:提供服務的
客戶端:享受服務的
bs架構:瀏覽器和服務端
網路通訊流程:
集線器:將所有連線上它的電腦全部聯通起來
交換機:公升級版的集線器
網絡卡:接收處理電訊號
廣播 單播
廣播風暴
作用:劃分廣播域
子網掩碼:計算ip位址段,或者判斷ip位址是否屬於同一位址段
dhcp協議:自動獲取ip位址
dns:網域名稱解析
arp協議:通過ip位址獲取mac,因為ip位址不固定,mac是全球唯一的
路由器:**訊息,管理內網
路由協議:計算路由**的最優路徑
埠:標示電腦上某個應用程式
ip位址+埠 = 能夠唯一鎖定一台電腦和這個電腦上的某個應用程式
閘道器:把關用的,意思就說所有對外的請求都要經過閘道器
nat技術:網路位址轉換,內網ip位址轉換為公網或者說外網的ip位址
不管哪個架構,他們都要進行網路通訊,基本都要用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()
linux socket網路程式設計之socket屬性
1.函式用法 include include int getsockopt int sockfd,int level,int optname,void optval,socklen t optlen 函式用於獲得某個套接字的屬性 int setsockopt int sockfd,int level...
網路程式設計 Python網路程式設計詳解socket
1 伺服器就是一系列硬體或軟體,為乙個或多個客戶端 服務的使用者 提供所需的 服務 它存在唯一目的就是等待客戶端的請求,並響應它們 提供服務 然後等待更多請求。2 客戶端 伺服器架構既可以應用於計算機硬體,也可以應用於計算機軟體。3 在伺服器響應客戶端之前,首先會建立乙個通訊節點,它能夠使伺服器監聽...
Python網路程式設計之UDP
udp處理資料報,是一種無連線的協議 伺服器端 server socket.socket socket.af inet,socket.sock dgram 繫結ip server.bind 192.168.1.104 221 while true 接收 data,address server.rec...