Привет всем,
Собственно на данный момент располагаю примером:
# telnet program example
import socket, select, string, sys
#main function
if __name__ == "__main__":
if(len(sys.argv) < 3) :
print 'Usage : python telnet.py hostname port'
sys.exit()
host = sys.argv[1]
port = int(sys.argv[2])
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(2)
# connect to remote host
try :
s.connect((host, port))
except :
print 'Unable to connect'
sys.exit()
print 'Connected to remote host'
while 1:
socket_list = [sys.stdin, s]
# Get the list sockets which are readable
read_sockets, write_sockets, error_sockets = select.select(socket_list , [], [])
for sock in read_sockets:
#incoming message from remote server
if sock == s:
data = sock.recv(4096)
if not data :
print 'Connection closed'
sys.exit()
else :
#print data
sys.stdout.write(data)
#user entered a message
else :
msg = sys.stdin.readline()
s.send(msg)
Пример работает, НО пользоваться таким клиентом не удобно, не хватает автодополнения по нажатию tab. (bash completion, насколько я понимаю)
Пробовал вместо sys.stdin.readline() посылать sys.stdin.read(1), не помогло.
Как сделать так, чтобы при нажатии tab строчка бы или автоматически заполнялась или выводились бы возможные варианты?