基于socket进行文件传输的过程可以分为以下几个步骤:
listen()
方法。accept()
方法。以下是一个简单的示例代码:
服务器端代码:
import socket
# 创建socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定IP地址和端口号
server_address = ('localhost', 8888)
server_socket.bind(server_address)
# 开始监听
server_socket.listen()
# 接受客户端连接请求
client_socket, addr = server_socket.accept()
# 接收文件数据并保存到本地文件
with open('received_file.txt', 'wb') as file:
while True:
data = client_socket.recv(1024)
if not data:
break
file.write(data)
# 关闭连接
client_socket.close()
server_socket.close()
客户端代码:
import socket
# 创建socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接服务器
server_address = ('localhost', 8888)
client_socket.connect(server_address)
# 打开要传输的文件
with open('file_to_send.txt', 'rb') as file:
# 读取文件数据并发送给服务器
while True:
data = file.read(1024)
if not data:
break
client_socket.sendall(data)
# 关闭连接
client_socket.close()
以上示例代码仅展示了最基本的文件传输过程,实际应用中可能需要处理更多的异常情况、加入数据校验和安全验证等。