Пытаюсь написать сервер python для узла.Клиент JS, не может получить данные

#python #node.js #sockets #websocket

Вопрос:

Недавно я играл с некоторыми js и python и хотел создать базовое клиентско-серверное приложение для начала, но возникли проблемы с получением данных от клиента.

client.js

 const _ = require('underscore');
const async = require('async');
const net = require('net');
const readline = require('readline');

module.exports = class Client {
  constructor(port) {
    this._port = port;
  }

  run(commands, done) {
    function reject(msg) {
      s.destroy();
      done(msg);
    }

    done = _.once(done);

    var s = net.connect({port: this._port}),
        rl = readline.createInterface({input: s}),
        handshaked = false,
        output = [];

    s.on('error', done);

    rl.on('line', line => {
      if (handshaked) {
        output.push(line);

        return;
      }

      handshaked = true;

      if (line !== 'hello')
        return reject('Expected: hello');

      s.write(commands.map(c => c   'rn').join('  '));
      s.write('quitrn');
    });

    rl.on('close', () => done(null, output));

    setTimeout(() => done('timeout'), 1000);
  }
}
 

server.py

 import socket
import sys


# Create a TCP/IP socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

server_address = ('localhost', 8124)
sock.bind(server_address)

sock.listen(1)

while True:
    # Wait for a connection
    print(sys.stderr, 'waiting for a connection')

    connection, client_address = sock.accept()
    try:
        print(sys.stderr, 'connection from {} ', client_address)

        # Receive the data in small chunks and retransmit it
        while True:
            data = connection.recv(1024)
            if data:
                print(sys.stderr, 'sending data back to the client')
                connection.sendall(data)
            else:
                print(sys.stderr, 'no more data from {} ', client_address)
                break
            
    finally:
        # Clean up the connection
        connection.close()
 

Я пытаюсь распечатать данные, но получаю пустую строку. Сервер подключается к клиенту, но не распечатывает получаемые данные.

Комментарии:

1. Вы пробовали подключиться к «netcat» и отправлять/получать данные через это ?