python中的網路程式設計

2021-08-01 15:58:12 字數 1405 閱讀 8912

python的網路程式設計基於socket(套接字)

基本概念:socket通常也稱作

"套接字

",用於描述

ip位址和埠,是乙個通訊鏈的控制代碼,應用程式通常通過

"套接字

"向網路發出請求或者應答網路請求。

socket起源於

unix

,而unix/linux

基本哲學之一就是

「一切皆檔案

」,對於檔案用【開啟】【讀寫】【關閉】模式來操作。

socket

就是該模式的乙個實現,

socket

即是一種特殊的檔案,一些

socket

函式就是對其進行的操作(讀/寫

io、開啟、關閉)

套接字:

面向連線:在通訊之前一定要建立一條連線,就像朋友打**那樣。這種方式被稱為虛電路或流套接字。面向連線的通訊方式提供了順序的、可靠的、不會重複的資料傳輸,而且不會被加上資料邊界,就意味著每乙個要傳送的資訊,可能會被拆分成多份,每一分都會不多不少的正確到達目的地,然後被重新按順序組裝起來,傳給正在等待的應用程式。

實現面向連線套接字的主要協議是tcp【傳輸控制協議】,要建立

tcp套接就得的在建立的時候指定套接字型別為

sock_stream.

由於這種套接字使用

ip來查詢網路中的主機,一般會有兩個協議(

tcp/ip

)名的組合來描述。

無連線:與流套接字(虛電路

)相反的就是資料報型的無連線套接字。這意味著無需建立連線即可進行通訊。但資料的到達順序、可靠性以及不重複性就無法保證了。資料報會保留資料邊界,即資料是整個傳送的。例如快遞傳送。

無連線的套接字使用的協議主要是udp(使用者資料報協議

),要建立無連線套接字就要指定套接字型別為

sock_dgram(dgram---datagram--

使用者資料報

)。同樣使用

ip來進行主機查詢,組合名叫

udp/ip.

socket()模組函式:

socket.socket():語法

--socket(socket_family,socjet_type,protocol=0)

socket_family:af_unix或

af_inet

socket_type:scoket_stream/socket_dgram[流套接字、無連線套接字]

protocol一般不填,預設為0

建立乙個tcp套接字:

tcpsock= socket.socket(socket.af_inet,socket.sock_stream)

建立乙個udp套接字:

udpsock= socket.socket(socket.af_inet,socket.sock_dgram)

python中的網路程式設計

客戶端伺服器 開發架構 概念 實體地址 檢視方式 埠號網路協議 網路協議就是為了能讓計算機網路中進行資料交換而建立的規則 標準 網際網路上有上百種協議,但是最重要的兩個協議是 tcp 協議和 ip 協議,因此我們將上百種協議統稱為 tcp ip 協議族。tcp ip協議族,根據協議的功能的不同抽象成...

實用 python中的網路程式設計

import threading import time import socket import logging logging.basicconfig format thread s threadname s message s level logging.info tcp server soc...

python中的socket網路程式設計 二

python中的socket網路程式設計 二 在python中的socket網路程式設計 一 一文中,我們介紹了客戶端的主要功能。下面我們看下服務端。建立socket 首先要建立 socket,用 python 中 socket 模組的函式 socket 就可以完成 coding utf 8 imp...