Python 如何使套接字服务器侦听本地文件

Python 如何使套接字服务器侦听本地文件,python,sockets,Python,Sockets,就像MySQL服务器的/tmp/MySQL.sock和客户端通过套接字写入此文件,或者通过任何建议在独立进程(一次更新,一次读取)之间共享内容,而无需memcached或NoSQL服务器,无需多线程或多进程 # Echo server program import socket,os s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) try: os.remove("/tmp/socketname") except OSError

就像MySQL服务器的
/tmp/MySQL.sock
和客户端通过套接字写入此文件,或者通过任何建议在独立进程(一次更新,一次读取)之间共享内容,而无需
memcached
或NoSQL服务器,无需多线程或多进程

# Echo server program
import socket,os

s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
try:
    os.remove("/tmp/socketname")
except OSError:
    pass
s.bind("/tmp/socketname")
s.listen(1)
conn, addr = s.accept()
while 1:
    data = conn.recv(1024)
    if not data: break
    conn.send(data)
conn.close()


# Echo client program
import socket

s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
s.connect("/tmp/socketname")
s.send(b'Hello, world')
data = s.recv(1024)
s.close()
print('Received ' + repr(data))

厚颜无耻地复制粘贴自。

这在以下情况下不起作用windows@Har是-它依赖于Windows不支持的Unix套接字文件(boo,Windows)套接字的协议类型错误:>s=socket.socket(socket.AF_Unix,socket.SOCK_STREAM)>s.connect('/dev/log')错误:[Errno 91]Cygwin下socketWorks的协议类型错误。当它在Cygwin下工作时,它在Linux/Unix下工作得更好。你是不是在没有Cygwin的情况下在Windows下试用?如果是这样的话,请尝试以下答案:这里有一个archive.org链接,因为它不再可用。