python使用socket模組進行網路程式設計

2021-10-23 16:30:27 字數 1954 閱讀 6882

python標準庫提供了socket模組用於建立伺服器與客戶端,並且可以相互通訊。

伺服器端建立起乙個socket物件,並等待客戶端連線。

客戶端使用socket物件與伺服器連線,連線成功就可以進行相互通訊(即傳輸資料)

socket模組的socket物件是socket網路程式設計的基礎物件,其原型為:

socket(family,

type

, proto)

引數說明:

- family: 位址族,可選引數,預設為 af_inet(ipv4)

, 也可以是af_inet6或af_unix;

-type

: socket型別,可選引數,預設為 sock_stream(tcp協議),也可用 socket_dgram(udp協議)

- proto: 協議型別,可選引數,預設為0

socket物件主要有以下幾個方法:

如下用tcp連線方式建立了乙個伺服器端程式

#建立伺服器端程式

import socket

host =

''port =

10888

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

s.bind(

(host,port)

)s.listen(1)

conn, addr = s.accept(

)print

(, addr)

while

true

: data = conn.recv(

1024)if

not data:

break

print

('伺服器收到的資料: '

, data.decode(

'utf-8'))

conn.send(data)

conn.close(

)

由於還沒有建立客戶端,執行該程式會使得服務端一直處於等待客戶端連線的狀態,看不出效果

建立客戶端程式比服務端簡單,流程如下:

如下建立乙個客戶端程式:

#建立客戶端程式

import socket

host =

'localhost'

port =

10888

s = socket.socket(socket.af_inet,

type

= socket.sock_stream)

s.connect(

(host, port)

)data =

'你好'

while data:

s.sendall(data.encode(

'utf-8'))

data = s.recv(

512)

print

(f'伺服器返回的資料: '

) data =

input

('向伺服器傳送資料: '

)s.close(

)

先執行伺服器程式,再執行客戶端程式,執行效果如下:

(左邊是伺服器收到的資料,右邊是客戶端傳送和接收的資料)

Socket的Server Client模型的程式

開發原理 伺服器 使用socket監聽指定的埠 埠可以隨意指定,但是因為有的作業系統規定1024之前的埠規系統所用,所以我們還是給作業系統讓位,取大於1024的埠 等待客戶連線請求,客戶連線之後,伺服器與客戶端的會話產生,在完成會話之後,關閉連線。客戶端 使用socket對網路上某乙個伺服器的某一埠...

python中Socket的使用

前一段時間學習python網路程式設計,完成簡單的通過python實現網路通訊的功能。現在,將python中socket 通訊的基本實現過程做乙個記錄備份.python 中的socket通訊較為簡單,僅需要幾行 就可實現。和一般的網路通訊一樣,通訊方式分為udp和tcp兩種方式,兩種方式的處理也略有...

Python 使用socket編寫TCP服務程式

使用socket編寫tcp服務程式 by 鄭瑞國 1 引用網路模組socket 2 建立乙個tcp網路套接字s 3 繫結本機ip位址和指定埠號 4 開始監聽 5 接受連線 6 接受資訊 import socket 1 引用網路模組socket s socket.socket socket.af in...