今日內容
1、TCP協議
協議的特點:三次握手,四次揮手;
2、UDP協議
3、OSI七層模型:每層的物理設備,每一層協議,
4、代碼部分:
①介紹socket;
②使用socket完成tcp協議的web通信;
③使用socket完成udp協議的web通信,
1、TCP協議
1、可靠,慢,全雙工通信
2、建立連接的時候,三次握手
3、斷開連接的時候,四次揮手
4、在建立起連接后
發送的每條資訊都有回執
為了保證資料的完整性,還有重傳機制
5、長連接:會一直占用雙方的埠
6、I/O操作(input,output),輸入輸出相對記憶體來說的,
write,send:輸出 output
read,recv:輸入input
能夠傳輸的資料沒有限制
2、UDP協議
1、無連接的,速度快
2、可能會丟訊息
能夠傳輸的資料長度有限的,是根據資料傳輸設備設定有關(MTU)
應用場景:
TCP:檔案的上傳,下載(郵件,網盤,快取電影)
UDP:即時通信(QQ,微信)
3、OSI7層模型
應用層 :http,https,ftp,smtp
表示層
會話層
#應用層(開發角度,五層協議)--》代碼
傳輸層,tcp,udp
網路層,ipv4,ipv6 (路由器)
資料鏈路層,mac,arp(網卡,交換機)
物理層
4、抽象層
socket 中文名:套接字
python socket模塊 完成socket的功能
作業在應用層和傳輸層 之間的抽象層
幫助我們完成了所有資訊的組織和拼接
socket對于程式員來說,已經是網路操作的底層了,
socket歷史
同一臺機器上的兩個服務之間的通信
基于檔案
基于網路的多型機器之間的多個服務通信
TCP協議:
###########
server端:
import socket
sk=socket.socket()
sk.bind(('127.0.0.1',9000))
sk.listen()
print('*'*20)
conn,addr=sk.accept()
while True:
msg=conn.recv(1024).decode('utf-8')
if msg.upper()=='Q':break
print(msg)
ipn=input(">>>")
conn.send(ipn.encode('utf-8'))
if ipn.upper()=='Q':break
conn.close()
sk.close()
################
client端:
import socket
sk=socket.socket()
sk.connect(('127.0.0.1',9000))
while True:
ipn=input(">>>")
sk.send(ipn.encode('utf-8'))
if ipn.upper()=='Q':break
msg=sk.recv(1024).decode('utf-8')
if msg.upper() == 'Q': break
print(msg)
sk.close()
========================
UDP協議:
server:
import socket
sk=socket.socket(type=socket.SOCK_DGRAM)
sk.bind(('127.0.0.1',9000))
while True:
msg,client_addr=sk.recvfrom(1024)
print(msg.decode('utf-8'))
msg=input(">>>").encode('utf-8')
sk.sendto(msg,client_addr)
sk.close()
client:
import socket
sk=socket.socket(type=socket.SOCK_DGRAM)
while True:
inp=input('>>>').encode('utf-8')
sk.sendto(inp,('127.0.0.1',9000))
ret=sk.recv(1024)
print(ret)
sk.close()
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/178309.html
標籤:Python
上一篇:2020Python練習五
