0
首先這是我在該網站的第一個問題,所以我可能會犯一些基本的錯誤,提前道歉。無論如何,我試圖爲telnet做一個GUI,我用python3作爲編程語言。但是我想連續連接,可惜我無法得到任何輸出,直到我停止程序(tn.write(b「exit \ n」))。我願意接受各種反饋(比如你應該使用套接字或者其他...)任何你給的信息都會被讚賞。 Ps:我只嘗試連接到目前爲止,我只填充連接按鈕。 Ps2:不知何故,我甚至無法完全對付代碼。試圖用telnetlib製作telnet gui
from tkinter import *
import tkinter.messagebox
import getpass
import sys
import telnetlib
def main():
root= Tk()
def tel_net():
username = entry1.get()
pw = entry2.get()
host_ip= entry3.get()
HOST = host_ip
user = username
password = pw
tn = telnetlib.Telnet(HOST)
tn.read_until(b"login: ")
tn.write(user.encode('ascii') + b"\n")
if password:
tn.read_until(b"Password: ")
tn.write(password.encode('ascii') + b"\n")
tn.write(b"ls\n")
tn.write(b"exit\n")
print(tn.read_all().decode('ascii')
def printconnect():
print("connected")
tel_net()
tkinter.messagebox.showinfo("telnet", "connected")
def printdisconnect():
print("disconnected")
tn = telnetlib.Telnet(HOST)
tn.close(HOST)
tkinter.messagebox.showinfo("telnet","disconnected")
def quitwindow():
answer = tkinter.messagebox.askquestion("telnet","Do you want to quit ?")
if answer == "yes":
root.destroy()
button1 = Button(root, text="Connect", command=printconnect, fg="green")
button2 = Button(root, text="Disconnect", command=printdisconnect, fg="red")
button3 = Button(root, text="Exit", command=quitwindow, fg="purple")
button1.grid(row=3, column=0, sticky = E)
button2.grid(row=3, column=1, sticky = E)
button3.grid(row=3, column=2, sticky = E)
label1 = Label(root, text="Username")
label2 = Label(root, text= "Password")
label3 = Label(root, text="Host ip")
entry1 = Entry(root)
entry2 = Entry(root)
entry3 = Entry(root)
entry2.config(show="*");
label1.grid(row=0, column=0, sticky = W)
label2.grid(row=1, column=0, sticky = W)
label3.grid(row=2, column=0, sticky = W)
entry1.grid(row=0, column=1, sticky = W)
entry2.grid(row=1, column=1, sticky = W)
entry3.grid(row=2, column=1, sticky = W)
c1=Checkbutton(root, text="Remember username")
c1.grid(columnspan=2,sticky = W)
c2=Checkbutton(root, text="Remember password")
c2.grid(columnspan=2,sticky = W)
root.mainloop()
if __name__ == "__main__":
main()