zoukankan      html  css  js  c++  java
  • Tcp下载文件

    一.下载文件

    tcp 客户端

    1.创建套接字
    down_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    2.获取ip,port
    down_ip = input("请输入ip:")
    down_port = int(input("请输入port:"))
    3.链接服务器
    down_socket.connect((down_ip,down_port))
    4.获取下载文件的名字
    down_name = input("请输入下载文件名:")
    5.将文件名发给服务器
    down_socket.send(down_name.encode("utf-8"))
    6.接受文件中的数据
    accept = down_socket.recv(1024)
    print(accept)
    7.判断文件是否有内容
    if accept:
    with open("新"+down_name, "wb") as f:
           f.write(accept)
    8.关闭套接字
    down_socket.close()

    tcp服务端


    1.创建套接字
    server_socket = socket.socket(socket.AF_INET, socket.SOCK.STREAM)
    2.绑定本地的信息
    server_socket.bind(("", 8088))
    3.等待(有主动变为被动listen)
    server_socket.listen(128)
    4.等待服务端链接
    new_server_socket, server_addr = server_socket.accept()
    print(str(server_saddr))
    5.等待服务端的请求,为客户段服务
     1.获取下载文件名
    down_name = new_server_socket.recv(1024).decode("utf-8")
       print("你要下载的文件是%s" % down_name)
       
     2.打开文件
    file_name = None
    try:
           f = open(down_name,"rb")
    file_name = f.read()
           f.close
       except Exception as ret:
           print("没有要下载的文件%s" % down_name)
     3.判断是否为空文件
    if down_name:
           new_server_socket.send(file_name)
    6.关闭套接字
    new_server_socket.close()
    server_socket.close()

    有需要的话可以关注我的微信公众号,会第一时间接收最新的知识。

  • 相关阅读:
    <mvc:annotation-driven>新增标签
    关于Spring中的<context:annotation-config/>配置
    <mvc:default-servlet-handler/>的作用
    各种WEB服务器自带的默认Servlet名称
    常用邮件协议
    vue-cli 脚手架项目简介(一)
    CSS3的transition和transform
    Spring配置文件<context:property-placeholder>标签使用漫谈
    使用Spring JDBCTemplate简化JDBC的操作
    技术探索不易
  • 原文地址:https://www.cnblogs.com/liudemeng/p/9058139.html
Copyright © 2011-2022 走看看