要获取本地服务器上其他进程的套接字数据源,可以使用Unix域套接字(Unix domain socket)来实现进程间通信。下面是一个简单的代码示例:
import socket
import os
# 创建Unix域套接字
server_socket = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
# 定义套接字文件路径
socket_file = '/tmp/server_socket.sock'
# 如果套接字文件已存在,则先删除
if os.path.exists(socket_file):
os.remove(socket_file)
# 绑定套接字到指定的文件路径
server_socket.bind(socket_file)
# 监听连接
server_socket.listen(1)
while True:
try:
# 接受客户端连接
client_socket, addr = server_socket.accept()
print('Connected by', addr)
# 接收数据
data = client_socket.recv(1024)
print('Received:', data.decode())
# 关闭连接
client_socket.close()
except KeyboardInterrupt:
# 如果收到中断信号,则关闭套接字并删除套接字文件
server_socket.close()
os.remove(socket_file)
break
上述代码创建了一个Unix域套接字,并将其绑定到指定的文件路径。然后,通过监听连接来接受其他进程的连接请求。
当有连接请求时,代码会接收数据并在控制台上打印接收到的数据。然后,关闭连接并等待下一个连接。
请注意,上述代码仅为示例,仅处理一个连接。如果需要处理多个连接,可以将代码放在循环中,每次接受一个连接并创建一个新的线程或进程来处理该连接。