You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
1.8 KiB
Python
69 lines
1.8 KiB
Python
5 years ago
|
import socket, select, string, sys
|
||
|
|
||
|
username = raw_input("Enter a username: ") # type: str
|
||
|
|
||
|
def prompt() :
|
||
|
sys.stdout.write('[' + username + '] ');
|
||
|
sys.stdout.flush()
|
||
|
|
||
|
#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 """
|
||
|
/$$ /$$ /$$$$$$$ /$$ /$$ /$$$$$$$ /$$ /$$
|
||
|
| $$ / $$| $$__ $$| $$ | $$| $$__ $$ | $$ | $$
|
||
|
| $$/ $$/| $$ \ $$| $$ | $$| $$ \ $$ /$$$$$$$| $$$$$$$ /$$$$$$ /$$$$$$
|
||
|
\ $$$$/ | $$$$$$$/| $$ | $$| $$$$$$$ /$$_____/| $$__ $$ |____ $$|_ $$_/
|
||
|
>$$ $$ | $$____/ | $$ | $$| $$__ $$ | $$ | $$ \ $$ /$$$$$$$ | $$
|
||
|
/$$/\ $$| $$ | $$ | $$| $$ \ $$ | $$ | $$ | $$ /$$__ $$ | $$ /$$
|
||
|
| $$ \ $$| $$ | $$$$$$/| $$$$$$$/ | $$$$$$$| $$ | $$| $$$$$$$ | $$$$/
|
||
|
|__/ |__/|__/ \______/ |_______/ \_______/|__/ |__/ \_______/ \___/
|
||
|
|
||
|
|
||
|
"""
|
||
|
print 'Connected to remote host. Start sending messages'
|
||
|
prompt()
|
||
|
|
||
|
s.send(username);
|
||
|
|
||
|
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 '\nDisconnected from chat server'
|
||
|
sys.exit()
|
||
|
else :
|
||
|
#print data
|
||
|
sys.stdout.write(data)
|
||
|
prompt()
|
||
|
|
||
|
#user entered a message
|
||
|
else :
|
||
|
msg = sys.stdin.readline()
|
||
|
s.send(msg)
|
||
|
prompt()
|