用python完成应用程序,实现两个人的TCP服务器客户端聊天,要求服务器带输入框,客户端带显示框
时间: 2024-02-24 08:58:26 浏览: 83
好的,这是一个稍微高级一些的聊天应用程序,可以使用Python的socket库和Tkinter库实现。下面是一个简单的代码示例,其中包含了一个服务器和一个客户端。客户端可以连接到服务器,并与服务器进行聊天。服务器端有一个输入框用于输入聊天内容,客户端有一个显示框用于显示聊天内容。
服务器端代码:
```python
import socket
import tkinter as tk
HOST = ''
PORT = 8888
def send_message(event=None):
message = message_input.get()
display_text.insert(tk.END, 'Server: ' + message + '\n')
conn.sendall(message.encode())
message_input.delete(0, tk.END)
root = tk.Tk()
root.title('Server Chat')
message_input = tk.Entry(root)
display_text = tk.Text(root, height=10, width=50)
message_input.pack(side=tk.LEFT, padx=5)
display_text.pack(side=tk.BOTTOM, pady=10)
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind((HOST, PORT))
server_socket.listen(1)
print('Server started and listening...')
conn, addr = server_socket.accept()
print('Connected by', addr)
root.bind('<Return>', send_message)
while True:
data = conn.recv(1024)
if not data:
break
display_text.insert(tk.END, 'Client: ' + data.decode() + '\n')
conn.close()
```
客户端代码:
```python
import socket
import tkinter as tk
HOST = 'localhost'
PORT = 8888
def send_message(event=None):
message = message_input.get()
display_text.insert(tk.END, 'You: ' + message + '\n')
client_socket.sendall(message.encode())
message_input.delete(0, tk.END)
root = tk.Tk()
root.title('Client Chat')
message_input = tk.Entry(root)
display_text = tk.Text(root, height=10, width=50)
message_input.pack(side=tk.LEFT, padx=5)
display_text.pack(side=tk.BOTTOM, pady=10)
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect((HOST, PORT))
root.bind('<Return>', send_message)
while True:
data = client_socket.recv(1024)
if not data:
break
display_text.insert(tk.END, 'Server: ' + data.decode() + '\n')
client_socket.close()
```
在运行代码之前,需要确保在同一台计算机上运行服务器和客户端,并且将`HOST`变量设置为服务器的IP地址或`localhost`。此外,需要确保端口号`PORT`在服务器和客户端之间是一致的。
运行服务器端代码后,将会看到一个简单的聊天应用程序界面,其中包含一个输入框和一个显示框。在输入框中输入消息并按下“Enter”键,即可将消息发送到客户端,并在显示框中显示客户端的响应。接下来,运行客户端代码,就可以看到一个简单的聊天应用程序界面,其中只有一个显示框。在输入框中输入消息并按下“Enter”键,即可将消息发送到服务器,并在显示框中显示服务器的响应。
阅读全文