osi七層模型包括:其作用在於不斷地給傳輸的內容加東西
應用層表示層
會話層
傳輸層 udp/tcp +埠
網路層 ip協議, +ip位址
資料鏈路層 乙太網協議 +mac
物理層 電訊號
重點:tcp協議的三次握手,四次揮手
揮手1客戶端先發,申請建立鏈結
2服務端收到後回饋,傳送確認資訊
3客戶端收到後表示收到
握手1客戶端請求
2服務端說我收到,請稍等
3服務端處理資料,全部結束後,發我已結束,不會丟失
4客戶端說,好,那咱斷開
tcp與udp下的socket 差乙個監聽與確認鏈結的過程
tcp的多人聊天在listen後面在引數表示最大的等待數量,必須一客戶端的鏈結斷開了後面的才能進行
udp的多人聊天如果同時發,服務端回覆第乙個才會收到第二個人發來的訊息
服務端
importsocket
#匯入socket模組
server = socket.socket() #
建立socket物件
ip_port = ('
121.195.167.34
',8002) #
設定乙個ip位址和埠號
server.bind(ip_port)
#繫結ip和埠號
server.listen(3) #
監聽ip和埠號
while 1:
conn,addr = server.accept() #
等待建立連線,前者為建立的連線通道,後者為客戶端位址
while 1:
from_client_msg = conn.recv(1024) #
通過recv方法,引數是位元組(b),1024即為1kb,指一次性接受的訊息大小
print(from_client_msg.decode('
utf-8'))
if from_client_msg.decode('
utf-8
') == '再見'
:
break
send_client_msg = input('
服務端說:')
#conn.send(b'replay'.encode('utf-8')) #回覆訊息,通過send方法,引數必須是位元組型別
conn.send(send_client_msg.encode('
utf-8'))
conn.close()
#關閉通道,通過close方法
#server.close() #關閉伺服器
客戶端
importsocket
import
time
client = socket.socket() #
建立乙個socket物件
server_ip_port = ('
121.195.167.34
',8002) #
找ip和埠號
client.connect(server_ip_port)
#利用ip和埠號連線伺服器程式
while 1:
send_server_msg = input('
客戶端說:')
if send_server_msg == '再見'
: client.send(send_server_msg.encode(
'utf-8'))
break
client.send(send_server_msg.encode(
'utf-8
')) #
發訊息,用send方法,位元組型別
#client.send('你好'.encode('utf-8')) #中文
#client.send(str(time.time()).encode('utf-8'))
from_server_msg = client.recv(1024) #
通過recv方法,引數是位元組(b),1024即為1kb,指一次性接受的訊息大小
print(from_server_msg.decode('
utf-8'))
client.close()
OSI七層模型
網際網路的各項應用,其實都是分層的,也就是各位網路達人常說的osi七層模型,下面我們就來具體看看網際網路的osi七層模型。一 什麼是網際網路osi模型?osi open system interconnection 是指開放式系統互聯參考模型。在我們的平常使用的計算機網路中存在眾多體系結構,如ibm...
OSI七層模型
1.物理層 主要定義物理裝置標準,如網線的介面型別 光纖的介面型別 各種 傳輸介質的傳輸速率等。它的主要作用是傳輸位元流 就是由1 0轉化為電流強弱來進行傳輸,到達目的地後在轉化為1 0,也就是我們常說的數模轉換與模數轉換 這一層的資料叫做位元。物理層建立在物理通訊介質的基礎上,作為系統和通訊介質的...
osi七層模型
1.物理層 主要定義物理裝置標準,如網線的介面型別 光纖的介面型別 各種 傳輸介質的傳輸速率等。它的主要作用是傳輸位元流 就是由1 0轉化為電流強弱來進行傳輸,到達目的地後在轉化為1 0,也就是我們常說的數模轉換與模數轉換 這一層的資料叫做位元。2.資料鏈路層 定義了如何讓格式化資料以進行傳輸,以及...