Netcat-Implementierung in Python
ich fanddiese und benutze es als meine Basis, aber es hat nicht sofort funktioniert. Mein Ziel ist es auch, es als Paket anstelle eines Befehlszeilendienstprogramms zu behandeln, sodass meine Codeänderungen dies widerspiegeln.
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
Wenn ich einen Basisbefehl an mein Gerät sende, wird Folgendes zurückgegeben.
50PMA-019 Connection Open
Atten #1 = 63dB
Mein Code liest die erste Zeile, aber dann erhalte ich die Fehlermeldung, dass die Verbindung vorübergehend nicht verfügbar ist und die zweite Zeile nicht angezeigt wird. Wenn ich ihn in "Blockieren" ändere, blockiert er nur und kehrt nie zurück. Irgendwelche Gedanken?