python 網路程式設計 基礎

2022-08-19 06:03:13 字數 1962 閱讀 5807

基本的架構有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 socket

sk = 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

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()

加強版server:

import socket

sk = 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 socket

sk = 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更多的功...