python基礎學習-socket簡介
導讀 | socket簡介,套接字可以看成是兩個網路應用程式進行通訊時,各自通訊連線中的一個端點。通訊時,其中的一個網路應用程式將要傳輸的一段資訊寫入它所在主機的Socket中,該Socket透過網路介面卡的傳輸介質將這段資訊傳送給另一臺主機的Socket中,使這段資訊能傳送到其他程式中。因此,兩個應用程式之間的資料傳輸要透過套接字來完成。 |
首要解決的問題是如何唯一標識一個程式,否則通訊無從談起!在1臺電腦上可以透過程式號(PID)來唯一標識一個程式,但是在網路中這是行不通的。
在網路應用程式設計時,由於TCP/IP的核心內容被封裝在作業系統中,如果應用程式要使用TCP/IP,可以透過系統提供的TCP/IP的程式設計介面來實現。在Windows環境下,網路應用程式程式設計介面稱作Windows Socket。為了支援使用者開發面向應用的通訊程式,大部分系統都提供了一組基於TCP或者UDP的應用程式程式設計介面(API),該介面通常以一組函式的形式出現,也稱為套接字(Socket)。
其實TCP/IP協議族已經幫我們解決了這個問題,網路層的“ip地址”可以唯一標識網路中的主機,而傳輸層的“協議+埠”可以唯一標識主機中的應用程式(程式)。
這樣利用
ip地址,協議,埠就可以標識網路的程式了,網路中的程式通訊就可以利用這個標誌與其它程式進行互動
- 所謂
程式
指的是:執行的程式以及執行時用到的資源這個整體稱之為程式(在講解多工程式設計時進行詳細講解)- 所謂
程式間通訊
指的是:執行的程式之間的資料共享- 後面課程中會詳細說到,像網路層等知識,不要著急
socket(簡稱
套接字
) 是程式間通訊的一種方式,它與其他程式間通訊的一個主要不同是:
它能實現不同主機間的程式間通訊,我們網路上各種各樣的服務大多都是基於 Socket 來完成通訊的
例如我們每天瀏覽網頁、QQ 聊天、收發 email 等等
在 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()
-
套接字使用流程 與 檔案的使用流程很類似
- 建立套接字
- 使用套接字收/發資料
- 關閉套接字
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2673717/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【機器學習基礎】半監督學習簡介機器學習
- python基礎學習-埠介紹說明Python
- Java IO學習筆記四:Socket基礎Java筆記
- python基礎學習Python
- Python基礎學習篇Python
- python基礎學習2Python
- python基礎學習1Python
- Python List 基礎學習Python
- 【Python基礎知識】Django框架簡介PythonDjango框架
- JavaScript基礎簡介JavaScript
- socket 模型簡介模型
- python基礎學習16—-模組Python
- pandas學習之Python基礎Python
- Python基礎學習3——列表Python
- 零基礎學習pythonPython
- Python基礎學習筆記Python筆記
- Python學習之路—Python基礎(一)Python
- Python學習筆記--Python基礎Python筆記
- Python零基礎好學嗎?零基礎如何學習Python?Python
- 0基礎學怎麼學習python?Python
- Python3 基礎學習之數值簡單運算Python
- JavaFX基礎:1: 簡介Java
- Oracle基礎工具簡介Oracle
- Unix domain socket 簡介AI
- Python基礎教程該如何學習?Python
- python基礎學習之 特徵工程Python特徵工程
- Python基礎學習之迴圈Python
- python基礎學習筆記(一)Python筆記
- Python基礎學習內容概述Python
- python基礎學習_01變數Python變數
- Python基礎學習【4】-if 語句Python
- Python基礎學習3:函式Python函式
- python基礎學習day2Python
- 0基礎新手該如何學習Python?學習技巧!Python
- 《Python深度學習從零開始學》簡介Python深度學習
- 0基礎能否學會Python?如何學習?Python
- 用Python學習統計學基礎-4Python
- 用Python學習統計學基礎-3Python