python|網絡編程tcp與udp通信

網絡編程

計算機網絡是一些相互連接的自主計算機或設備的集合,它是計算機技術和通信技術相結合的產物。

網絡協議

網絡協議是網絡中進行數據交換與傳輸所需要的規則、標準或約定,主要由語法(數據與信息的結構形式)、語義和同步(事件的實現順序)三個要素組成。因七層模型過於複雜不實用,故簡化爲四層模型
在這裏插入圖片描述

地址與端口

地址就是ip地址,端口就是一些常用的端口。比如ftp協議端口號爲21,http常用端口爲80.本地主機叫做127.0.0.1.

套接字的使用

套接字是一種類文件對象,python有專門的socket庫。服務器端需要建立一個socket對象,並等待客戶端的連接。客戶端使用socket對象與服務器端進行連接,一旦連接成功,客戶端和服務端就可以通信了。

socket(family, type, proto)
  • family:地址族,可選參數

用socket建立服務器端與客戶端程序

python的socket模塊可以建立服務器端程序也可以建立客戶端程序。其原型是

socket(family, type, proto)

其參數含義是:

  • family:地址族,可選參數。默認爲AF_INET(IPV4),也可以是AF_INET6或AF_UNIX;
  • type:socket類型,可選參數。默認爲SOCK_STREAM(TCP協議),可用SOCKET_DGRAM(UDP協議)
  • proto:協議類型,可選參數。默認爲0

作爲服務器端的socket對象主要有以下方法
在這裏插入圖片描述
而作爲客戶端只需要外加connect,跟bind所需要的參數類似
這部分實例看這篇博文
python|基於兩個py文件的tcp通信(含實例源碼)

用socket建立基於UDP協議的服務器與客戶端程序

基於udp的是不是特別穩定的,因此步驟就簡單了許多,主要兩個方法

recvfrom(buffsize[,flags]) # bufsize 用來指定緩衝區大小
sendto(bytes,address)

這裏的演示通過這個博文演示效果極佳:
python|基於兩個py文件的udp通信(含實例源碼)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章