1. 程式人生 > 實用技巧 >網路通訊——udp套接字

網路通訊——udp套接字

1. 軟體開發架構

  1. C/S架構
    1. client   客戶端
    2. server 服務端
  2. B/S架構
    1. browser 瀏覽器
    2. server 伺服器

2.網路通訊的概念

  • 使用網路能夠把多方連線在一起,然後可以資料傳遞
  • 網路程式設計就是,讓在不同的電腦上的軟體能夠進行資料傳遞,即程序之間的通訊
  • 網路是美國人發明的,最初用於軍方 阿帕網,推廣為民用
  • 區域網:是指在某一區域內由多臺計算機連城的計算機組
  • 廣域網:不同區域之間的區域網互聯就形成的廣域網
  • 注意:“區域網" 和”廣域網“只是一個相對的概念

IP地址的概念

地址就是用來標記地點的

IP地址的作用

  用來在網路中標記一臺電腦,比如 192.168.1.1;在本地區域網上是唯一的

IP地址分類

  • 分為兩大類:IPV4/IPV6
  • PV4:由四組陣列成,每一組數的最小值為0,最大值為256,因此,當今有256256256*256 -> 256的4次方 -> 4,294,967,296,即42億多個ip
  • IPV6:未來的趨勢,IPV4已經將近枯竭,IPV6號稱全世界的每一粒商字都可匹配為唯一的IP而不衝突

埠的概念:

  與寫信相對應,IP地址僅僅是定位到了這封信郵到哪個地方,但是還不知道誰來收, 埠就是標記誰來收的

埠號:

埠是通過埠號來標記的 埠只有整數,範圍是從0到65535

1.網路模型的概念
  • OSI七層模型(應表會傳網數物)
7.應用層
6.表示層
5.會話層
4.傳輸層
3.網路層
2.資料鏈路層
1.物理層
  • TCP/IP五層模型(將OSI七層模型的應用層, 表示層, 會話層抽象為一層)
5.應用層
4.傳輸層
3.網路層
2.資料鏈路層
1.物理層
  • TCP/IP四層模型(將TCP/IP五層模型中的資料鏈路層和物理層合併為網路介面層(資料鏈路層))
4.應用層
3.傳輸層
2.網路層
1.網路

應用層:與網路相關的程式通過網路與其他程式通訊使用的資料格式規範。
傳輸層:解決諸如端到端可靠性(資料是否已經到達目的地)和保證資料按照正確的順序到達這樣的問題。TCP、UDP都是傳輸層協議。
網路層:解決在一個單一網路上傳輸資料包的問題。
資料鏈路層:它是資料包從一個裝置的網路層傳輸到另外一個裝置的網路層遵循的規範

語法格式介紹

import socket

socket .socket(AddressFamily,Type)

# 建立一個udp套接字
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 可以使用套接字收發資料
    # udp_socket.sendto("hahahah", 對方的ip以及port)
    udp_socket.sendto(b"hello world", ("192.168.57.65", 8080))
# 關閉套接字
    udp_socket.close()
 # 可以使用套接字收發資料
# udp_socket.sendto("hahahah", 對方的ip以及port) # udp_socket.sendto(b"hahahah------1----", ("192.168.57.65", 8080)) udp_socket.sendto(send_data.encode("utf-8"), ("192.168.57.65", 8080))

bind():繫結地址資訊

recvfrom:接收資料

 # 1. 建立套接字
 udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
 # 2. 繫結一個本地資訊
 localaddr = ("", 7788)
 udp_socket.bind(localaddr)
 # 3. 接收資料
 recv_data = udp_socket.recvfrom(1024)
 # 4. 列印接收到的資料
 print(recv_data)
 # 5. 關閉套接字
 udp_socket.close()