tkinter实现双人聊天
时间: 2023-05-30 13:02:15 浏览: 224
以下是一个简单的双人聊天程序的示例,使用tkinter作为GUI界面。
```python
from tkinter import *
import socket
import threading
# 设置IP地址和端口号
HOST = '127.0.0.1'
PORT = 8000
# 创建socket对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
# 创建GUI界面
root = Tk()
root.title('双人聊天')
# 创建显示消息的文本框
messages = Text(root)
messages.pack()
# 创建输入消息的文本框
input_user = StringVar()
input_field = Entry(root, text=input_user)
input_field.pack(side=BOTTOM, fill=X)
# 发送消息
def send(event=None):
# 获取输入框中的消息
message = input_user.get()
# 清空输入框
input_user.set('')
# 发送消息到服务器
s.sendall(message.encode())
# 接收消息
def receive():
while True:
# 从服务器接收消息
message = s.recv(1024).decode()
# 将消息显示在文本框中
messages.insert(INSERT, message + '\n')
# 创建接收消息的线程
receive_thread = threading.Thread(target=receive)
receive_thread.start()
# 绑定回车键
input_field.bind("<Return>", send)
# 运行GUI界面
root.mainloop()
# 关闭socket连接
s.close()
```
该程序的实现方式是通过一个socket连接实现双人聊天,其中一个用户作为server端,另一个用户作为client端,通过socket连接进行消息传输。在程序中,我们通过socket连接向server发送消息,同时通过线程不断地接收来自server的消息并将其显示在GUI界面上。
阅读全文