用python完成应用程序,实现两个人的TCP服务器客户端聊天,要求带输入框和显示框
时间: 2024-02-24 07:58:22 浏览: 98
好的,这是一个比较基础的聊天应用程序,可以使用Python的socket库实现。下面是一个简单的代码示例,其中包含了一个服务器和一个客户端。客户端可以连接到服务器,并与服务器进行聊天。客户端和服务器都有一个输入框和一个显示框,用于输入和显示聊天内容。
服务器端代码:
```python
import socket
HOST = ''
PORT = 8888
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)
while True:
data = conn.recv(1024)
if not data:
break
print('Received message:', data.decode())
conn.sendall(data)
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())
response = client_socket.recv(1024)
display_text.insert(tk.END, 'Server: ' + response.decode() + '\n')
message_input.delete(0, tk.END)
root = tk.Tk()
root.title('Chat Application')
message_input = tk.Entry(root)
display_text = tk.Text(root, height=10, width=50)
send_button = tk.Button(root, text='Send', command=send_message)
message_input.pack(side=tk.LEFT, padx=5)
send_button.pack(side=tk.RIGHT, 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)
root.mainloop()
client_socket.close()
```
在运行代码之前,需要确保在同一台计算机上运行服务器和客户端,并且将`HOST`变量设置为服务器的IP地址或`localhost`。此外,需要确保端口号`PORT`在服务器和客户端之间是一致的。
运行服务器端代码后,将会看到一个提示消息,表明服务器已经启动并正在监听客户端的连接请求。接下来,运行客户端代码,就可以看到一个简单的聊天应用程序界面。在输入框中输入消息并按下“Enter”键或单击“Send”按钮,即可将消息发送到服务器,并在显示框中显示服务器的响应。
阅读全文