Реализация Netcat в Python

я нашелэтот и я использую его в качестве своей базы, но это не былоработает прямо из коробки. Моя цель также состоит в том, чтобы рассматривать его как пакет вместо утилиты командной строки, поэтому изменения в моем коде будут отражать это.

class Netcat:
    def __init__(self, hostname, port):
        self.hostname = hostname
        self.port = port
    def send(self, content):
    self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    self.socket.connect((self.hostname, self.port))
    self.socket.setblocking(0)
    result = '';
    read_ready, write_ready, in_error = select.select([self.socket], [], [self.socket], 5)
    if(self.socket.sendall(content) != None):
        return
    while(1):
        buffer = ''
        try:                
            buffer = self.socket.recv(128)
            while(buffer != ''):
                result += buffer
                try:
                    buffer = self.socket.recv(128)
                except socket.error as err:
                    print (err, type(err))
                    buffer = ''
            if(buffer == ''):
                break
        except socket.error as err:
            print (err, type(err))
        if(buffer == ''):
            break
    return result

Когда я отправляю базовую команду на мое устройство, она возвращает следующее.

50PMA-019 Connection Open
Atten #1 = 63dB

Мой код читает первую строку, но затем я получаю сообщение об ошибке, в котором говорится, что соединение временно недоступно, и оно не получает вторую строку. Если я поменяю его на блокирующий, он просто блокируется и никогда не возвращается. Какие-нибудь мысли?

Ответы на вопрос(3)

Ваш ответ на вопрос