基本的架構有c/s架構
和b/s架構
b/s架構優於c/s架構? 因為統一入口 , 都是從瀏覽器開始訪問
兩台電腦實現通訊, 需要網絡卡, 網絡卡上有全球唯一的mac位址
arp協議
#通過ip位址就能找到對應的mac位址
多台電腦相連的問題: 交換機
如何通訊:
廣播:告訴所有人的過程---->廣播
確定的電腦進行回覆 ----> 單播
閘道器:區域網的機器想要訪問區域網之外的機器, 需要閘道器
#子網掩碼和ip位址
判斷兩台電腦是否在同乙個區域網內
#通過埠來找程式:
#在計算機每乙個網路通訊的程式在同一時間占用乙個埠, 不可能在同一時間, 有兩個程式, 占用同乙個埠
埠的範圍是0-65535 一般是8000之後的埠, 前面是系統的
#ip+埠 唯一確定乙個程式 ip+埠找到唯一的機器的唯一的程式
tcp/udp協議 tcp協議是可靠的 面向連線的運輸資訊是全雙工的
udp協議是不可靠的, 無連線的
tcp 類似於打**
udp類似於發簡訊
tcp協議;連線的時候,三次握手,
斷開的時候,四次揮手
計算機網路分層:
應用層傳輸層
網路層資料鏈路層
物理層伺服器:
import socketsk = socket.socket()
sk.bind(('127.0.0.1', 9000))
sk.listen()
conn,addr = sk.accept()
ret = conn.recv(1024)
conn.send(b"hello")
ret = conn.recv(1024)
print(ret.decode("utf-8"))
conn.close()
sk.close()
**:
import socket加強版server:sk = socket.socket()
sk.connect(('127.0.0.1', 9000))
sk.send(b"hi")
ret = sk.recv(1024)
sk.send("你吃飯了嗎?", encod="utf-8")
print(ret)
sk.close()
import socketsk = socket.socket()
sk.connect(('127.0.0.1', 9000))
while true:
msg = input(">>>")
sk.send(msg.encode("utf-8"))
ret = sk.recv(1024)
if ret == 'bye':
break
print(ret.decode("utf-8"))
sk.close()
加強版client:
import socketsk = socket.socket()
sk.bind(('127.0.0.1', 9000))
sk.listen()
conn,addr = sk.accept()
while true:
mag = conn.recv(1024)
if mag == 'bye':
conn.send(b'bye')
break
print(mag.decode("utf-8"))
info = input(">>>")
conn.send(info.encode("utf-8"))
conn.close()
sk.close()
python網路程式設計基礎
客戶 伺服器架構 伺服器 是乙個軟體或硬體,用於提供客戶需要的 服務 伺服器存在的唯一目的就是等待客戶的請求,給這些客戶服務,然後再等待其他的請求.常見的服務型別 硬體的客戶 伺服器架構 印表機,檔案伺服器 軟體客戶 伺服器架構 web伺服器,資料庫伺服器,視窗伺服器 gui 套接字 用於程序間通訊...
python 網路程式設計基礎
python實在是太方便,太易用了,三方庫的支援又全,語法又簡單,對開發人員來說,實在是居家旅行,x的必備利器。週末研究了下python的網路支援,做一下記錄,以備隨後翻閱。python支援bsd的socket進行網路程式設計,其api跟c中的大同小異,先看看tcp方式的,說到網路程式設計,肯定會設...
python網路程式設計基礎
目錄 標籤 空格分隔 網路程式設計 目錄tcp和udp tcp的使用是面向連線的,即資料的傳輸必須基於虛鏈路的完整建立。虛鏈路的建立提供了很多優秀的功能,比如確認重傳以保證資料的完整性,滑動視窗以保證資料傳輸的高效性,各類選項字段提供不同的可選功能。tcp的缺點是報頭大,因為需要包含比udp更多的功...