用·python写一个基于TCP的服务端和客户端的邮件传输系统,要求输入传输的邮件地址和接受的传输地址,只有正确才能接受到邮件信息
时间: 2024-02-20 21:01:35 浏览: 81
基于TCP协议的发送和接收端
好的,我可以为您提供一个基于 Python 的简单的 TCP 邮件传输系统的实现,可以输入邮件地址和接收地址。这个实现会检查输入的地址是否正确,只有正确的地址才能接收到邮件信息。
服务端实现:
```python
import socket
SERVER_HOST = '127.0.0.1'
SERVER_PORT = 5000
# 创建一个 TCP 套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 将套接字绑定到指定的 IP 地址和端口号
server_socket.bind((SERVER_HOST, SERVER_PORT))
# 开始监听传入连接
server_socket.listen(1)
print(f"[*] Listening on {SERVER_HOST}:{SERVER_PORT}")
while True:
# 等待客户端连接
client_socket, client_address = server_socket.accept()
print(f"[*] Accepted connection from {client_address[0]}:{client_address[1]}")
# 接收客户端发送的数据
data = client_socket.recv(1024)
message = data.decode('utf-8')
print(f"[*] Received data from client: {message}")
# 检查邮件地址是否正确
sender, recipient = message.split(',')
if sender.strip() == 'you@example.com' and recipient.strip() == 'recipient@example.com':
# 发送邮件数据给客户端
mail_message = "From: you@example.com\nTo: recipient@example.com\nSubject: Test Message\n\nThis is a test message."
client_socket.sendall(mail_message.encode('utf-8'))
else:
# 发送错误消息给客户端
error_message = "Invalid email addresses"
client_socket.sendall(error_message.encode('utf-8'))
# 关闭客户端连接套接字
client_socket.close()
```
客户端实现:
```python
import socket
SERVER_HOST = '127.0.0.1'
SERVER_PORT = 5000
# 创建一个 TCP 套接字
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接到服务端
client_socket.connect((SERVER_HOST, SERVER_PORT))
print(f"[*] Connected to {SERVER_HOST}:{SERVER_PORT}")
# 输入要发送的邮件地址和接收地址
sender = input("Enter sender email address: ")
recipient = input("Enter recipient email address: ")
# 发送数据到服务端
data = f"{sender}, {recipient}"
client_socket.sendall(data.encode('utf-8'))
# 接收服务端发送的邮件数据或错误消息
response = client_socket.recv(1024)
print(f"[*] Received response from server: {response.decode('utf-8')}")
# 关闭客户端套接字
client_socket.close()
```
以上代码实现了一个简单的 TCP 邮件传输系统,服务端接收客户端发送的邮件地址和接收地址,然后检查是否正确。如果正确,服务端发送一封测试邮件给客户端。如果不正确,服务端发送一个错误消息给客户端。客户端连接到服务端后,输入要发送的邮件地址和接收地址,然后发送给服务端。服务端检查地址是否正确,然后发送邮件数据或错误消息给客户端。您可以根据需要修改此示例代码以满足您的实际需求。
阅读全文