Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何创建侦听文件描述符的Python套接字服务器?_Python_Sockets_Node.js_Ipc - Fatal编程技术网

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

如何创建侦听文件描述符的Python套接字服务器?,python,sockets,node.js,ipc,Python,Sockets,Node.js,Ipc,我正在尝试让Javascript(Nodejs)应用程序与Python应用程序通信 我使用了绑定到本地主机和特定端口的套接字 为了使事情变得更简单(例如,当部署到可能不允许我监听多个端口的环境时),我想将实现更改为使用绑定到文件描述符的套接字 我到处搜索,但找到的所有示例都使用端口 基本上,我需要Python服务器计数器部件(指定路径的版本): var client=net.connect({path:'/tmp/echo.sock'} 有人能提供一个简单的例子来展示、创建和绑定一个文件描述符套

我正在尝试让Javascript(Nodejs)应用程序与Python应用程序通信

我使用了绑定到本地主机和特定端口的套接字

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

我到处搜索,但找到的所有示例都使用端口

基本上,我需要Python服务器计数器部件(指定路径的版本):

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

有人能提供一个简单的例子来展示、创建和绑定一个文件描述符套接字,并在其上处理数据和/或为我指出正确的方向吗?

我修改了一点(例如,python服务器必须监听TCP而不是UDP套接字才能与nodejs客户端兼容)

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

Python服务器: Nodejs客户端: 使用npmlog获取彩色日志输出
npm安装npmlog


您正在寻找socket.AF_UNIX而不是socket.AF_inet非常感谢,这个简洁的评论足以改进我的google查询,让我来看看我在更新中添加的示例。在这种情况下,您可以用代码示例回答自己的问题并接受它。
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"
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');
  })
  ;