python用udp实现图形化界面远程不同主机之间发送和接受文本信息多线程在线聊天能将信息显示出来和从输入框中获取ip和端口号代码
时间: 2024-02-20 16:56:21 浏览: 63
以下是一个使用 Python UDP 实现多线程在线聊天的示例代码,其中包括了图形化界面、发送和接收文本信息以及获取 IP 和端口号的功能。
```python
import threading
import socket
import tkinter as tk
# 创建 UDP socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 创建 GUI 界面
root = tk.Tk()
root.title("UDP Chat")
# 创建文本框
text_box = tk.Text(root, width=50, height=20)
text_box.pack()
# 创建输入框和按钮
input_box = tk.Entry(root, width=50)
input_box.pack()
def send_message():
# 获取目标 IP 和端口号
target_ip = input_box.get().split(':')[0]
target_port = int(input_box.get().split(':')[1])
# 发送消息
message = text_box.get("1.0", "end-1c").encode()
sock.sendto(message, (target_ip, target_port))
def receive_message():
while True:
# 接收消息
message, address = sock.recvfrom(1024)
message = message.decode()
# 显示消息
text_box.insert("end", f"{address[0]}:{address[1]} says: {message}\n")
# 创建发送和接收线程
send_thread = threading.Thread(target=send_message)
receive_thread = threading.Thread(target=receive_message)
# 启动线程
send_thread.start()
receive_thread.start()
# 运行 GUI 界面
root.mainloop()
```
要使用这个代码,你需要在运行之前将 `input_box` 中的 IP 和端口号替换为你要连接的主机的 IP 和端口号。然后,你可以运行代码并开始与其他主机进行聊天。
阅读全文