socket下载文件

本文详细介绍了如何利用Socket编程在客户端和服务器之间进行文件下载操作,涵盖了连接建立、数据传输及断点续传等关键技术点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

客户端脚本
__author__ = 'Administrator'
'''
创建socket
连接服务器
用户输入下载命令
罚送数据到服务器段
接收服务器段发回的数据
保存到一本地一个新的文件
'''
import socket
client=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
client.connect(("localhost",9090))
while True:
    cmd=input("请输下载命令:").strip()
    client.send(cmd.encode())
    f=open("new.txt","a+")
    while True:
        date=client.recv(1024)
        if date is None:
            break
        f.write(str(date,encoding="utf-8"))
        print("alskdjflk")
    f.close()
服务器端脚本
__author__ = 'Administrator'
'''
建立服务器socket
绑定服务器地址
开始监听(多用户的监听)
接收客户段的请求(download file)命令
读取本地的file文件
发送本地文件到客户断
'''
import socket
service=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
service.bind(("localhost",9090))
service.listen(6)
while True:
    conn,addr=service.accept()
    '''不停的接收客户段的连接请求(但是实际只能接收到一c个链接,其他链接只是被挂着,
       只有当前链接被释放的时候才可以进行下一个链接的作),此处相当与所有的
       客户端在此排队等候'''
    while True:
        '''
       客户段与服务器建立连接后,进入客户端与服务器段的交互
       '''
        print("进入客户段交互模式")
        cmd=conn.recv(1024)
        filename=cmd.decode("utf-8").split(" ")[1]
        print(filename)
        with open(filename,"r",encoding="utf-8") as f:
            for line in f:
                conn.send(bytes(line,encoding="utf8"))

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值