python基礎學習-socket簡介

大雄45發表於2020-01-17
導讀 socket簡介,套接字可以看成是兩個網路應用程式進行通訊時,各自通訊連線中的一個端點。通訊時,其中的一個網路應用程式將要傳輸的一段資訊寫入它所在主機的Socket中,該Socket透過網路介面卡的傳輸介質將這段資訊傳送給另一臺主機的Socket中,使這段資訊能傳送到其他程式中。因此,兩個應用程式之間的資料傳輸要透過套接字來完成。
1. 不同電腦上的程式之間如何通訊

首要解決的問題是如何唯一標識一個程式,否則通訊無從談起!在1臺電腦上可以透過程式號(PID)來唯一標識一個程式,但是在網路中這是行不通的。
在網路應用程式設計時,由於TCP/IP的核心內容被封裝在作業系統中,如果應用程式要使用TCP/IP,可以透過系統提供的TCP/IP的程式設計介面來實現。在Windows環境下,網路應用程式程式設計介面稱作Windows Socket。為了支援使用者開發面向應用的通訊程式,大部分系統都提供了一組基於TCP或者UDP的應用程式程式設計介面(API),該介面通常以一組函式的形式出現,也稱為套接字(Socket)。
其實TCP/IP協議族已經幫我們解決了這個問題,網路層的“ip地址”可以唯一標識網路中的主機,而傳輸層的“協議+埠”可以唯一標識主機中的應用程式(程式)。
這樣利用 ip地址,協議,埠就可以標識網路的程式了,網路中的程式通訊就可以利用這個標誌與其它程式進行互動

注意:
  • 所謂 程式指的是:執行的程式以及執行時用到的資源這個整體稱之為程式(在講解多工程式設計時進行詳細講解)
  • 所謂 程式間通訊指的是:執行的程式之間的資料共享
  • 後面課程中會詳細說到,像網路層等知識,不要著急
2. 什麼是socket

socket(簡稱  套接字) 是程式間通訊的一種方式,它與其他程式間通訊的一個主要不同是:

它能實現不同主機間的程式間通訊,我們網路上各種各樣的服務大多都是基於 Socket 來完成通訊的

例如我們每天瀏覽網頁、QQ 聊天、收發 email 等等

python基礎學習-socket簡介python基礎學習-socket簡介

3.  建立socket

在 Python 中 使用socket 模組的函式 socket 就可以完成:

import socket
socket.socket(AddressFamily, Type)
說明:

函式 socket.socket 建立一個 socket,該函式帶有兩個引數:

  • Address Family:可以選擇 AF_INET(用於 Internet 程式間通訊) 或者 AF_UNIX(用於同一臺機器程式間通訊),實際工作中常用AF_INET
  • Type:套接字型別,可以是 SOCK_STREAM(流式套接字,主要用於 TCP 協議)或者 SOCK_DGRAM(資料包套接字,主要用於 UDP 協議)

建立一個tcp socket(tcp套接字)

import socket# 建立tcp的套接字s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# ...這裡是使用套接字的功能(省略)...# 不用的時候,關閉套接字s.close()

建立一個udp socket(udp套接字)

import socket# 建立udp的套接字s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)# ...這裡是使用套接字的功能(省略)...# 不用的時候,關閉套接字s.close()
說明
  • 套接字使用流程 與 檔案的使用流程很類似
    1. 建立套接字
    2. 使用套接字收/發資料
    3. 關閉套接字

本文原創地址:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2673717/,如需轉載,請註明出處,否則將追究法律責任。

相關文章