我正在尝试连接到套接字文件并向其发送一些命令:
#!/usr/bin/env python
import socket
s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
s.connect("/var/run/socket")
s.send('a command here')
data = s.recv(1024)
s.close()
print 'Received', repr(data)
我错过了什么吗?
我是Python的新手。
提前感谢您的帮助!
答案 0 :(得分:0)
你没有说实际问题是什么,或者显示任何错误,但这里有一些事情要检查。
请注意,您需要一个客户端和服务器才能进行通信。在客户端可以连接之前,服务器必须已经运行。服务器创建一个必须不存在的套接字。
server.py
import os
import socket
address = '/tmp/socket'
s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
s.bind(address) # this creates the socket file
s.listen(1)
r, a = s.accept()
r.send('Hello\n')
msg = r.recv(1024)
print msg
r.close()
s.close()
os.unlink(address) # remove the socket file so that it can be recreated on next run
运行此服务器,然后(在另一个终端中)运行客户端代码:
client.py
import socket
server_addr = '/tmp/socket'
s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
s.connect(server_addr)
s.send('a command here')
data = s.recv(1024)
s.close()
print 'Received', repr(data)