如何创build一个侦听文件描述符的Python套接字服务器?

我正在尝试使Javascript(Nodejs)应用程序与Python应用程序进行通信。

我得到了一些使用绑定到我的本地主机和特定端口的套接字工作 。

为了使事情变得简单(例如,当部署到可能不允许我监听多个端口的环境中)时,我想改变我的实现来使用绑定到文件描述符的套接字。

我search高低,但我发现所有的例子使用端口。

基本上我需要从Nodejs文档 (指定path的版本)的这个例子的Python服务器计数器部分:

var client = net.connect({path: '/tmp/echo.sock'}

有人请提供一个简单的例子,显示,创build和绑定一个文件描述符套接字,并在其上处理数据和/或指向正确的方向?

我修改了这个很好的例子 (例如,python服务器必须在TCP上监听,而不是UDP套接字与nodejs客户端兼容。

我在这里发布python服务器和nodejs客户端代码以供参考:

Python服务器:

 import socket import os, os.path import time sockfile = "./communicate.sock" if os.path.exists( sockfile ): os.remove( sockfile ) print "Opening socket..." server = socket.socket( socket.AF_UNIX, socket.SOCK_STREAM ) server.bind(sockfile) server.listen(5) print "Listening..." while True: conn, addr = server.accept() print 'accepted connection' while True: data = conn.recv( 1024 ) if not data: break else: print "-" * 20 print data if "DONE" == data: break print "-" * 20 print "Shutting down..." server.close() os.remove( sockfile ) print "Done" 

Nodejs客户端:

使用npmlog获取彩色日志输出npm install npmlog

 var net = require('net') , log = require('npmlog') , sockfile = './communicate.sock' ; var client = net.connect( { path: sockfile }); client .on('connect', function () { log.info('client', 'client connected'); client.write('hello server'); }) .on('data', function (data) { log.info('client', 'Data: %s', data.toString()); client.end(); }) .on('error', function (err) { log.error('client', err); }) .on('end', function () { log.info('client', 'client disconnected'); }) ;