在 Python 中,你可以使用套接字(socket)模塊來創建和處理本地套接字,也稱為 Unix 域套接字。本地套接字提供了進程間通信的能力,不需要通過網絡協議棧進行通信。以下是使用本地套接字的基本示例:
1. 創建本地套接字服務器:
python
import socket
# 創建本地套接字
server_socket = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
# 指定套接字文件路徑
socket_file = '/tmp/my_socket'
# 綁定套接字到指定文件
server_socket.bind(socket_file)
# 監聽連接
server_socket.listen(1)
# 等待客戶端連接
client_socket, client_address = server_socket.accept()
# 接收客戶端數據
data = client_socket.recv(1024)
# 處理數據
# ...
# 關閉套接字
client_socket.close()
server_socket.close()
在上面的代碼中,我們首先創建了一個本地套接字服務器,并將其綁定到指定的套接字文件(`socket_file`)。然后,我們通過調用 `listen()` 方法開始監聽連接,并通過 `accept()` 方法等待客戶端連接。一旦客戶端連接成功,我們可以使用 `recv()` 方法接收客戶端發送的數據,并進行處理。最后,我們關閉套接字。
2. 創建本地套接字客戶端:
python
import socket
# 創建本地套接字
client_socket = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
# 指定套接字文件路徑
socket_file = '/tmp/my_socket'
# 連接到服務器
client_socket.connect(socket_file)
# 發送數據到服務器
data = b"Hello, server!"
client_socket.send(data)
# 關閉套接字
client_socket.close()
在上面的代碼中,我們創建了一個本地套接字客戶端,并通過 `connect()` 方法連接到服務器的套接字文件(`socket_file`)。然后,我們使用 `send()` 方法發送數據到服務器。最后,我們關閉套接字。
請注意,在使用本地套接字時,你需要確保套接字文件的路徑在系統中是唯一的,并具有適當的權限。同時,服務器和客戶端的套接字類型(如 `SOCK_STREAM`)和地址族(如 `AF_UNIX`)應該匹配。
以上示例展示了如何在 Python 中使用本地套接字進行進程間通信。你可以根據實際需求擴展這些示例,并根據具體場景進行適當的處理和錯誤處理。