网站百度秒收,校园网站首页模板,一个网站 两个域名,网页设计与制作心得体会1000目录 1.认识Python
2.环境与工具
2.1 python环境
2.2 Visual Studio Code编译
3.文件上传
3.1 代码构思
3.2 服务端代码 3.3 客户端代码 3.4 运行结果
4.总结 1.认识Python
Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。
Python 的设计具…目录 1.认识Python
2.环境与工具
2.1 python环境
2.2 Visual Studio Code编译
3.文件上传
3.1 代码构思
3.2 服务端代码 3.3 客户端代码 3.4 运行结果
4.总结 1.认识Python
Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。
Python 的设计具有很强的可读性相比其他语言经常使用英文关键字或标点符号它具有比其他语言更有特色的语法结构。 2.环境与工具
2.1 python环境
在Windows上使用命令行窗口查看所安装的python版本
python --version 2.2 Visual Studio Code编译
Visual Studio Code是一款由微软开发且跨平台的免费源代码编辑器。该软件以扩展的方式支持语法高亮、代码自动补全、代码重构功能并且内置了命令行工具和Git 版本控制系统。 3.文件上传
3.1 代码构思
建立一个文件上传程序服务端通过IP端口上传本地文件到服务器然后客户端接收使用socket套接字对象连接用TCP协议传输信息。
3.2 服务端代码
服务端搭建一个TCP服务器上传文件。
import socket
import structdef send_file(filename, host127.0.0.1, port9999):try:# 创建一个 TCP/IP 套接字socket_server socket.socket(socket.AF_INET, socket.SOCK_STREAM)socket_server.bind((host, port))socket_server.listen()print(f服务端开始监听 {host}:{port}...)while True:# 链接socket_conn, addr socket_server.accept()print(fConnected by {addr})try:with open(filename, rb) as f:text_content f.read()txt_len len(text_content)# 发送文件长度socket_conn.send(struct.pack(i, txt_len))# 文件信息socket_conn.send(text_content)print(fSent {filename} ({txt_len} bytes) to {addr})except FileNotFoundError:print(fFile {filename} 没有找到。)socket_conn.send(struct.pack(i, 0))except Exception as e:print(fError: {e})finally:socket_conn.close()print(f链接 {addr} 已关闭。)except Exception as e:print(f错误: {e})finally:socket_server.close()print(服务端关闭。)if __name__ __main__:send_file(./pythonProject/1.txt) #文件路径3.3 客户端代码
客户端客户端代码与服务器建立 TCP 连接接收文件并保存该文件。
import socket
import structdef receive_file(filename, host127.0.0.1, port9999):try:# 创建一个 TCP/IP 套接字client_socket socket.socket(socket.AF_INET, socket.SOCK_STREAM)client_socket.connect((host, port))print(f连接到 {host}:{port})# 获取文件长度txt_len struct.unpack(i, client_socket.recv(4))[0]print(f获得 {txt_len} bytes)if txt_len 0:print(f没有获取到文件服务端可能不存在)return# 打开文件并进行写操作with open(filename, wb) as fp:recv_len 0while recv_len txt_len:recv_txt client_socket.recv(1024)recv_len len(recv_txt)fp.write(recv_txt)print(f获得 {recv_len} bytes. 文件 {filename} 写入成功.)except Exception as e:print(fError: {e})finally:client_socket.close()print(客户端关闭。)if __name__ __main__:receive_file(1.txt) #接收的文件保存路径与名称3.4 运行结果
首先运行服务端代码打开然后运行客户端代码用于接收文件。 4.总结
此程序呈现出了局域网内文件传输的典型示例方便大家理解局域网内文件传输的底层逻辑。
你也快来试试吧