手机局域网聊天工具 局域网聊天工具

镇魔司出品 , 必属精品 , 欢迎关注今天来搞一个通过TCP传输文件的文件下载器 , 通过今天的学习 , 你可以学到一下内容

手机局域网聊天工具 局域网聊天工具

文章插图
手机局域网聊天工具 局域网聊天工具

文章插图
手机局域网聊天工具 局域网聊天工具

文章插图
手机局域网聊天工具 局域网聊天工具

文章插图
撸代码先搞客户端
导入socket库
import socket
主函数
if __name__ == '__main__':
创建socket实例
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
连接服务器 , 这里我们做成自定义输入的IP和端口
client.connect((input("输入ip地址"), int(input("端口号"))))
输入要传输的文件名
file_name = input("输入文件名")
使用utf-8编码 , 打包数据
pkt_data = https://www.yf-zs.com/qinggan/file_name.encode("utf-8")
发送数据包
client.send(pkt_data)
文件名发送完毕 , 接着我们就可以安心等待数据传输了 , 这里我们简单点 , 采用阻塞读取的方式
先定义一个列表 , 用来存放文件内容
str_list = <>
【手机局域网聊天工具 局域网聊天工具】 while True:
阻塞读取TCP数据
recv_data = https://www.yf-zs.com/qinggan/client.recv(1024)
if recv_data:
str_list.append(recv_data)
else:
break
如果str_list不为空 , 即接收到了文件内容 , 那么可以写入本地文件 , 否则认为服务端没有这个文件 , 传输结束
if str_list:
with open("../../" + file_name, "wb") as f:
for file_content_b in str_list:
f.write(file_content_b)
else:
print("下载的文件不存在")
client.close()
服务端的代码我们下节课再讲 , 欢迎私信获取源码