目錄
二、網路協議的五層模型
三、寫乙個客戶端和服務端的例子
b:browser s:server 瀏覽器 服務端,例如京東、天貓
b/s架構本質也是c/s架構
現在學習網路程式設計就是為了寫乙個c/s架構的軟體
s端(伺服器端):
網路:網路連線介質+網路協議(osi七層)
網路協議:又稱osi七層協議,分為應用層(應用層,表示層,會話層)、傳輸層、網路層、資料鏈路層、物理層。
第一層:物理層
主要接受01010001等電訊號
將物理層的電訊號分組。
廣播:同乙個區域網內通訊,會出現廣播風暴
第三層:網路層
已有自己的mac位址,訪問物件,傳送自己的ip和目標ip,通過arp協議廣播傳送,目標使用者確認ip後傳送mac位址,獲取對方mac位址填入mac位址。
第四層:傳輸層
埠與埠連線
第五層:應用層
進入程序服務
寫乙個客戶端,實現給服務端傳送hello world字串,寫乙個服務端,將客戶端傳送的資料變成大寫後返回
# 客戶端
import socket
# 建立乙個socket物件
soc=socket.socket()
# 連線服務端
soc.connect(('192.168.11.176',24))
# 傳送訊息
soc.send(b'hello world')
# 接收1024個位元組
data=soc.recv(1024)
print('我收到服務端返回的',data)
# 關閉連線
soc.close()
# 服務端
# 匯入乙個socket模組
import socket
# socket.sock_stream表示建立tcp連線,socket.sock_dgram表示udp連線
soc=socket.socket(socket.af_inet,socket.sock_stream)
soc.bind(('192.168.11.176',24)) # 如果寫本機ip,區域網外部可以訪問
# 如果ip寫127.0.0.1,只能自己訪問
# 開機,監聽,這個5是半連線池的大小
soc.listen(5)
# 等待接收別人的請求
conn,addr = soc.accept()
# conn就是通路-
data = conn.recv(1024).upper() # 接收1024位元組
print('伺服器接收到客戶端發的',data)
# conn.send傳送資料,資料必須是bytes格式
conn.send(b'what can i help you?')
# 關閉通路
conn.close()
# 關閉連線
soc.close()
必須先把伺服器檔案執行著,客戶端檔案才能執行,連線到服務端 初學網路程式設計
昨天到今天幾乎都在做這個問題,利用socket設計乙個簡單的聊天工具。現在可以說是成功了80 了。並通過學習這方面知識還補充了一些mfc和網路方面的知識,一舉好幾得。但是眼睛有點疲勞,因為對著顯示器的時間長了嘛!乙個最大的體會就是原來乙個聊天程式並沒有我以前想象的那麼難啊,計算機這東西怪不得有人說它...
初學網路程式設計
1.c s架構 c s架構 客戶端 client 服務端 server 架構,這種架構也是從使用者層面 也可是物理層面 來劃分的.這裡客戶端一般指需先安裝再執行的應用程式.對作業系統依賴性較大 服 務端即是這類程 序對應的伺服器.b s架構 browser server,瀏覽器端與伺服器端架構.也是...
初學socket程式設計(網路程式設計)
tcp 是面向連線的,三次握手成功之後才能通訊,位元組流傳輸,效率低於udp,但是安全性高 因為採用了三次握手和四次揮手協議 雙方需要建立連線才能通訊 傳送資料 底層使用tcp協議,tcp底層是用http協議。tcp三次握手四次揮手示意圖 tcp通訊實現 先建立伺服器端 tcp協議服務端 publi...