Python中tcp文件网络传输小练习, 领会精神哦

练习 : 选择一张图片,从客户端上传到服务端

   温馨提示: 客户端读取图片的内容
             将内容发送给服务端
             服务端接受图片内容
             保存在服务端某个位置

客户端代码:

from socket import *

s = socket()
s.connect(('127.0.0.1',8888))   # 连接服务器

img = input(">>")               # 客户输入文件路径和名字

f = open(img,'rb')              # 打开文件,准备一会儿读取
# 边读取,边发送
while True:                     # 边读边发
    data = f.read(1024)
    if not data:                # 读不到文件了,就说明到了文件结尾
        break
    s.send(data)

f.close()
s.close()

服务端代码:

"""
练习 : 选择一张图片,从客户端上传到服务端

       温馨提示: 客户端读取图片的内容
                 将内容发送给服务端
                 服务端接受图片内容
                 保存在服务端某个位置
"""
from socket import *
from time import localtime

# 存在这里, 先写好路径,省的想起路径就头痛,路径复用,哈哈
SAVE_PATH = "/home/tarena/图片/"      # 小心机,结尾的斜杠也带着,待会儿就能直接加文件名

s = socket()
s.bind(('127.0.0.1',8888))
s.listen(3)

c,addr = s.accept()             # 接收客户端连接
print("Connect from",addr)      # 如若连接,告知操作人

# 打开文件
tmp = localtime()
img = "%s-%s-%s.jpg"%tmp[:3]    # 这名字起的,一朵花儿啊
f = open(SAVE_PATH+img,'wb')    # 路径加名字, 写二进制方式打开,同时就能创建文件

#接收图片
while True:                     # 边收边写
    data = c.recv(1024)
    if not data:
        break                   # 接收不到数据,也就是到了结尾,就退出
    f.write(data)               # 把读取到的写到打开的文件里去

f.close()
c.close()                       # 服务端的套接字一般都有两个,创建的套接字,和接收到客户端的套接字
s.close()                       # 核心代码,没几句啊

品过上一段代码,来做这个小练习,瞬间就清晰了.自学,自己掌握方向和节奏的感觉灰常好,加油,明天继续,早点来.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值