python標準庫提供了socket
模組用於建立伺服器與客戶端,並且可以相互通訊。
伺服器端建立起乙個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
如下用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(
(, addr)
while
true
: data = conn.recv(
1024)if
not data:
break
('伺服器收到的資料: '
, 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)
(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...