就业DAY2_网络编程_文件下载客户端及服务器

Posted joycezhou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了就业DAY2_网络编程_文件下载客户端及服务器相关的知识,希望对你有一定的参考价值。

import socketdef main():
    # 创建套接字
    tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

    # 获取服务器的ip port
    dest_addr = input("请输入服务器的ip:")
    dest_port = int(input("请输入服务器的port:"))

    # 链接服务器
    tcp_socket.connect((dest_addr, dest_port))

    # 获取下载的文件名字
    file = input("请输入需要下载的文件名:")

    # 将文件名字发送到服务器
    tcp_socket.send(file.encode("gbk"))

    # 接收文件中的数据
    recv_data = tcp_socket.recv(1024)

    # 保存接收到的数据到一个文件中
    if recv_data:
        with open("复件" + file, "wb") as f:
            f.write(recv_data)
    # 关闭套接字
    tcp_socket.close()


if __name__ == "__main__":
    main()
import socket

def send_file_2_client(client_socket, client_addr):
    # 1 接收需要下载的文件名
    # 接收客户端发送来的请求,接收客户端发过来的文件名
    file_name = client_socket.recv(1024)
    print("客户端%s发过来的文件名:%s" % (str(client_addr), file_name.decode("gbk")))

    file_content = None
    # 2 打开文件,读取数据
    try:
        f = open(file_name.decode("gbk"), "rb")
        file_content = f.read()
        f.close()
    except Exception as ret:
        print("没有要下载的文件%s" % ret)

    # 3 发送文件的数据给客户端
    if  file_content:
    # 回送一部分数据给客户端
        client_socket.send(file_content)


def main():
    # 买个手机-创建tcp套接字
    tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

    # 插入手机卡-绑定
    tcp_socket.bind(("", 7890))

    # 将手机设置为正常的响铃模式(让默认的套接字由主动变为被动listen)
    tcp_socket.listen(128)

    while True:
        # 等待别人的电话到来(等待客户端的链接 accept)
        client_socket, client_addr = tcp_socket.accept()

        # print(client_socket)
        print(client_addr)

        send_file_2_client(client_socket, client_addr)

        # 关闭套接字

        client_socket.close()
    tcp_socket.close()

if __name__ == "__main__":
    main()

 

以上是关于就业DAY2_网络编程_文件下载客户端及服务器的主要内容,如果未能解决你的问题,请参考以下文章

就业DAY2_网络编程_udp聊天器--用户可以控制

Python——day2_基础_模块概念,列表,元组,字典

Day2_数字类型_字符串类型_列表类型_元组_字典_集合_字符编码_文件处理

Python学习笔记_Day2_数据类型及数据结构(列表和元组)

day2::(python-学习之路)-文件处理

2015黑马安卓52期 基础+就业+项目+实战 高清完整版