python学习之tcp下载器

客户端下载文件

import socket

def main():
    # 创建套接字
    tcp_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    # 获取服务器的ip和port、
    dest_ip = input("请输入下载服务器的ip:")
    dest_port = int(input("请输入服务器的端口:"))
    # 链接服务器
    tcp_socket.connect((dest_ip,dest_port))
    # 获取下载文件名字
    download_file_name = input("请输入需要下载的文件名字:")
    # 文件名发送到服务器
    tcp_socket.send(download_file_name.encode("gbk"))
    # 接受文件数据
    reve_data = tcp_socket.recv(1024)
    # 保存接受文件数据
    with open("[新]"+download_file_name,"wb") as f:
        f.write(reve_data)
    # 关闭套接字
    tcp_socket.close()

if __name__ == '__main__':
    main()

服务端

`import socket

def get_download_file(file_name):
# 打开读取文件
try:
with open(file_name,“rb”) as f:
content = f.read()
return content
except:
return “没有此文件”

def main():
# 创建套接字
tcp_socket= socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 绑定本地端口
tcp_socket.bind(("",7890))
# 监听模式
tcp_socket.listen(128)
# 被动接受
new_socket,new_address = tcp_socket.accept()
# 接受需要下载的文件名
file_name = new_socket.recv(1024).decode(“utf-8”)
file_content = get_download_file(file_name)
new_socket.send(file_content.encode(“gbk”))
new_socket.send(“hahaha发送成功”.encode(“gbk”))
new_socket.close()
tcp_socket.close()

if name == ‘main’:
main()`

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_39377119

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值