用python完成应用程序,实现两个人的聊天,可以是UDP双人聊天,也可以是TCP服务器客户端聊天,要求:(1)带输入框,能够发送输入的内容 (2)带显示框,能显示自己发送的内容也能能够接受并显示对方的消息
时间: 2024-02-22 21:57:21 浏览: 52
好的,这是一个比较常见的应用程序,我可以为您提供一些基本的代码和思路。
首先,您可以选择使用TCP或UDP建立连接。使用TCP可以保证数据传输的可靠性,但是会存在一定的延迟;使用UDP则可以实现更快的数据传输速度,但是数据传输的可靠性可能会受到影响。
以下是基于TCP的服务器客户端聊天的示例代码:
服务器端代码:
```python
import socket
HOST = '127.0.0.1' # 服务器IP地址
PORT = 8888 # 服务器端口号
BUFSIZ = 1024 # 缓冲区大小,单位为字节
ADDR = (HOST, PORT)
tcpSerSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 创建TCP套接字
tcpSerSock.bind(ADDR) # 绑定服务器IP地址和端口号
tcpSerSock.listen(5) # 监听客户端连接请求,最多可以同时处理5个请求
print('服务器已经启动,等待客户端连接...')
while True:
tcpCliSock, addr = tcpSerSock.accept() # 接受客户端连接请求,返回一个新的套接字和客户端地址
print('客户端已经连接,地址为:', addr)
while True:
data = tcpCliSock.recv(BUFSIZ) # 接收客户端发送的数据
if not data:
break
print('客户端发送的消息为:', data.decode('utf-8'))
message = input('请输入你要发送的消息:')
tcpCliSock.send(message.encode('utf-8')) # 向客户端发送数据
tcpCliSock.close() # 关闭客户端套接字
tcpSerSock.close() # 关闭服务器端套接字
```
客户端代码:
```python
import socket
HOST = '127.0.0.1' # 服务器IP地址
PORT = 8888 # 服务器端口号
BUFSIZ = 1024 # 缓冲区大小,单位为字节
ADDR = (HOST, PORT)
tcpCliSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 创建TCP套接字
tcpCliSock.connect(ADDR) # 连接服务器
print('客户端已经连接到服务器...')
while True:
message = input('请输入你要发送的消息:')
tcpCliSock.send(message.encode('utf-8')) # 向服务器发送数据
data = tcpCliSock.recv(BUFSIZ) # 接收服务器发送的数据
print('服务器发送的消息为:', data.decode('utf-8'))
tcpCliSock.close() # 关闭客户端套接字
```
以上代码实现了一个简单的服务器客户端聊天程序,你可以根据自己的需要进行修改和扩展。
阅读全文