【发布时间】:2018-02-11 10:07:37
【问题描述】:
我正在尝试使用套接字在 Python 中创建一个聊天应用程序。我无法连接 (HOST, PORT) 对。
这是 GUI 代码 sn-p,错误在 client_socket.connect(ADDR) 行中看到:
root = Tk()
root.title("Kchat V1.0")
mainScreenlabel = Frame(root)
mainScreenlabel.pack()
mainScreeninput = Frame(root)
mainScreeninput.pack(side=BOTTOM)
HOST = StringVar()
titleLabel = Label(mainScreenlabel, text="Welcome to Kchat!!")
inputLabel = Label(mainScreeninput, text="Host IP :")
inputEntry = Entry(mainScreeninput, textvariable=HOST)
connectButton = Button(mainScreeninput, text="Connect", command=connect)
titleLabel.pack()
inputLabel.pack(side=LEFT)
inputEntry.pack(side=LEFT)
connectButton.pack()
PORT = 33000
BUFSIZ = 1024
ADDR = (HOST, PORT)
client_socket = socket(AF_INET, SOCK_STREAM)
client_socket.connect(ADDR)
receive_thread = Thread(target=receive)
receive_thread.start()
root.mainloop() #Starts GUI execution
这是我得到的错误:
Tracebak (most recent call last):
File".\chatClient.py", line 76, in <module>
client_socket.connect(ADDR)
TypeError: str, bytes or bytearray expected, not StringVar
【问题讨论】:
-
请以文本形式发布您的代码和错误消息。至少我不会点击任何图片来获取此类信息。
-
看起来,
HOST是一个tkinter变量,而不是str或bytearray。您需要使用HOST.set(<hostname>)设置HOST的值。更多信息,请阅读here。 -
@VasilisG.:我看到您的编辑已获得批准,但我会拒绝它。内联代码图像并不是一种改进。
-
@usr2564301 已修复。
-
@usr2564301 我做了另一个编辑,用实际代码替换了图像。但它仍在等待中。