使用python写一个基于TCP的聊天程序
时间: 2023-06-19 11:05:39 浏览: 172
好的,下面是一个基于TCP的聊天程序的示例代码:
服务端代码:
```python
import socket
# 创建socket对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定IP地址和端口号
server_socket.bind(('127.0.0.1', 9999))
# 监听连接
server_socket.listen(5)
print('等待客户端连接...')
while True:
# 接受客户端连接
client_socket, client_address = server_socket.accept()
print('客户端已连接,地址为:', client_address)
while True:
# 接收客户端发送的消息
data = client_socket.recv(1024).decode('utf-8')
if not data:
# 客户端已断开连接
print('客户端已断开连接')
break
print('收到客户端消息:', data)
# 发送消息给客户端
message = input('请输入回复消息:')
client_socket.send(message.encode('utf-8'))
# 关闭客户端连接
client_socket.close()
```
客户端代码:
```python
import socket
# 创建socket对象
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接服务端
client_socket.connect(('127.0.0.1', 9999))
print('已连接到服务器')
while True:
# 发送消息给服务端
message = input('请输入消息:')
client_socket.send(message.encode('utf-8'))
# 接收服务端发送的消息
data = client_socket.recv(1024).decode('utf-8')
print('收到服务端消息:', data)
# 关闭连接
client_socket.close()
```
使用方法:
1. 先运行服务端代码,等待客户端连接。
2. 运行客户端代码,输入连接信息。
3. 客户端输入消息,服务端接收并回复。
4. 当客户端想要断开连接时,可以输入空消息,服务端会自动关闭连接。
注意事项:
1. 这只是一个示例代码,可能存在一些不完善的地方,需要根据实际情况进行修改。
2. 在实际使用中,应该考虑到并发连接和异常处理等问题。
阅读全文