域名套接字(Domain Socket),也称为Unix域套接字(Unix Domain Socket),是一种在同一台机器上的进程间通信(IPC)机制。它允许不同进程通过文件系统路径进行通信,而不是通过网络协议栈。域名套接字提供了一种高效的通信方式,特别适用于同一台机器上的进程间通信。
域名套接字分为两种类型:
以下是一个简单的Python示例,展示如何使用域名套接字进行进程间通信:
import socket
import os
# 创建一个流式域名套接字
server_socket = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
# 绑定到一个文件路径
socket_path = '/tmp/example.sock'
if os.path.exists(socket_path):
os.remove(socket_path)
server_socket.bind(socket_path)
# 监听连接
server_socket.listen(1)
print("Server listening on", socket_path)
while True:
# 接受连接
client_socket, addr = server_socket.accept()
print("Connection from", addr)
# 接收数据
data = client_socket.recv(1024)
print("Received:", data.decode())
# 发送响应
client_socket.sendall(b"Hello from server")
# 关闭连接
client_socket.close()import socket
# 创建一个流式域名套接字
client_socket = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
# 连接到服务器
socket_path = '/tmp/example.sock'
client_socket.connect(socket_path)
# 发送数据
client_socket.sendall(b"Hello from client")
# 接收响应
data = client_socket.recv(1024)
print("Received:", data.decode())
# 关闭连接
client_socket.close()通过以上信息,你应该对域名套接字有了全面的了解,并能够在实际开发中应用和解决相关问题。