Python3 網路程式設計

2021-09-25 14:54:12 字數 4773 閱讀 4704

3、python internet 模組

python 提供了兩個級別訪問的網路服務:

序號描述

1低階別的網路服務支援基本的socket,它提供了標準的bsd sockets api,可以訪問底層作業系統socket介面的全部方法

2高階別的網路服務模組socketserver, 它提供了伺服器中心類,可以簡化網路伺服器的開發

python 中,我們用socket()函式來建立套接字,語法格式如下:

socket.socket(

[family[

,type

[, proto]]]

)

序號

引數描述

1family

套接字家族,可以是af_unix或者af_inet

2type

協議型別,根據是面向連線還是非連線分為sock_streamsock_dgram

3protocol

一般不填,預設為0

2.1 伺服器端 套接字:

序號函式

描述1s.bind()

繫結位址(host,port)到套接字, 在af_inet下,以元組(host,port)的形式表示位址

2s.listen()

開始tcp監聽。backlog指定在拒絕連線之前,作業系統可以掛起的最大連線數量。該值至少為1,大部分應用程式設為5就可以了。

3s.accept()

被動接受tcp客戶端連線,(阻塞式)等待連線的到來

2.2 客戶端 套接字:

序號函式

描述1s.connect()

主動初始化tcp伺服器連線

一般address的格式為元組(hostname,port),如果連線出錯,返回socket.error錯誤。

2s.connect_ex()

connect()函式的擴充套件版本,出錯時返回出錯碼,而不是丟擲異常

2.3 公共用途的套接字函式:

序號函式

描述1s.recv()

接收tcp資料,資料以字串形式返回,bufsize指定要接收的最大資料量。flag提供有關訊息的其他資訊,通常可以忽略。

2s.send()

傳送tcp資料,將string中的資料傳送到連線的套接字。返回值是要傳送的位元組數量,該數量可能小於string的位元組大小。

3s.sendall()

整傳送tcp資料,完整傳送tcp資料。將string中的資料傳送到連線的套接字,但在返回之前會嘗試傳送所有資料。成功返回none,失敗則丟擲異常。

4s.recvfrom()

接收udp資料,與recv()類似,但返回值是(data,address)。其中data是包含接收資料的字串,address是傳送資料的套接字位址。

5s.sendto()

傳送udp資料,將資料傳送到套接字,address是形式為(ipaddr,port)的元組,指定遠端位址。返回值是傳送的位元組數。

6s.close()

關閉套接字

7s.getpeername()

返回連線套接字的遠端位址。返回值通常是元組(ipaddr,port)。

8s.getsockname()

返回套接字自己的位址。通常是乙個元組(ipaddr,port)

9s.setsockopt(level,optname,value)

設定給定套接字選項的值。

10s.getsockopt(level,optname[.buflen])

返回套接字選項的值

11s.settimeout(timeout)

設定套接字操作的超時期,timeout是乙個浮點數,單位是秒。值為none表示沒有超時期。一般,超時期應該在剛建立套接字時設定,因為它們可能用於連線的操作(如connect())

12s.gettimeout()

返回當前超時期的值,單位是秒,如果沒有設定超時期,則返回none。

13s.fileno()

返回套接字的檔案描述符。

14s.setblocking(flag)

如果flag為0,則將套接字設為非阻塞模式,否則將套接字設為阻塞模式(預設值)。非阻塞模式下,如果呼叫recv()沒有發現任何資料,或send()呼叫無法立即傳送資料,那麼將引起socket.error異常。

15s.makefile()

建立乙個與該套接字相關連的檔案

序號協議

功能用處

埠號python 模組

網頁訪問80httplib,urllib,xmlrpclib

2nntp

119nntplib

3ftp

檔案傳輸20ftplib,urllib

4smtp

傳送郵件25smtplib

5pop3

接收郵件110poplib

6telnet

命令列23telnetlib

Python3網路程式設計

python提供了2個級別的訪問翁羅服務 低階別的網路服務支援socket,他提供了標準的bsd sockets api,可以訪問底層作業系統socket介面的全部方法 高階別的網路服務模組socket server,他提供了伺服器中心類,可以簡化伺服器的開發 使用此函式建立套接字,語法 socke...

python3網路程式設計

網路程式設計 通過網路程式設計解決計算機與計算機間的通訊的通訊協議 網路根據地域面積分為三類 區域網,都會網路,廣域網 ip位址由4個8位組成,每位最大不大於255 b類 128.0.0.0 191.255.255.255 c類 192.0.0.0 233.255.255.255 d,e類 多用於組...

python3 網路程式設計

建立服務端 coding utf 8 import socket net socket socket.socket socket.af inet,socket.sock stream net socket.bind 7788 net socket.listen 10 new socket,clien...