server.py

#!/usr/bin/env python
# -*- coding:utf-8 -*- import socket
import os,hashlib ip_port = ('127.0.0.1',6969)
sk = socket.socket()
sk.bind(ip_port)
sk.listen(5) while True:
conn,address = sk.accept()
while True:
print('等待新指令')
#获取客户端发来的操作指令
data = conn.recv(1024)
if not data:
print('客户端已经断开')
break
cmd,filename= data.decode().split()
if os.path.isfile(filename):
#读取客户端指定的文件
f=open(filename,'rb')
m = hashlib.md5()
file_size = os.stat(filename).st_size
print('file_size:',file_size)
# 将客户端指定的文件大小返回客户端
conn.send(str(file_size).encode('utf-8'))
#接收sk.send(b"ready to recv file")
conn.recv(1024)
for line in f:
#读取文件的内容,并修改成密文
m.update(line)
# 发送改成密文后的文件内容
conn.send(line)
f.close()
conn.close() client.py
#!/usr/bin/env python
# coding:utf-8 import socket
import sys
import os ip_port = ('127.0.0.1', 6969)
sk = socket.socket()
sk.connect(ip_port) while True:
# 客户端输入要下载文件的路径,get开头
cmd = input('path:').strip()
if len(cmd) == 0:
continue
if cmd.startswith('get'):
# 发送操作指令
sk.send(cmd.encode())
file_size = sk.recv(1024)
print('file_size:',file_size)
# 发送准备好的信息
sk.send(b"ready to recv file")
file_total_size = int(file_size.decode())
receive_size = 0
#file_name =cmd.split()[1]
file_name = 'hah.log'
f = open(file_name,'wb')
while receive_size <file_total_size:
# 接收发送的密文,并写入新文件中
data = sk.recv(1024)
receive_size +=len(data)
f.write(data)
else:
print('file recv done')
f.close() sk.close()

socket 上传文件代码的更多相关文章

  1. PHP socket上传文件图片

    最近了解了下下socket方面的东西,想做一个socket上传文件的例子. 在网上搜了搜代码执行后,图片数据传输了一半,图片的下半部分是灰色的.然后就自己仿着搜来的代码和php.net 中socket ...

  2. php 利用socket上传文件

    php 利用socket上传文件 张映 发表于 2010-06-02 分类目录: php 一,利用fsockopen来上传文件 以前我写过一篇关于socket通信原理的博文http://blog.51 ...

  3. iOS上传文件代码,自定义组装body

    以下代码为上传文件所用代码,简单方便,搞了好久,终于知道这么简单的方式来上传. 其它类库也就是把这几句代码封装的乱七八糟得,让你老久搞不懂原理.不就是在body上面加点字符串,body下面加点字符串, ...

  4. ExtJS + fileuploadfield上传文件代码

    后台服务端接收文件的代码: /** * 后台上传文件处理Action */ @RequestMapping(value = "/uploadFile", method=Reques ...

  5. php 上传文件代码

    通过 PHP,能够把文件上传到server.里面加入一些图片的推断,假设不加推断文件的类型就能够上传随意格式的文件. 为了站点的安全,肯定不让上传php文件,假设有人进入你的后台,上传了一个php文件 ...

  6. java上传文件代码

    import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;impo ...

  7. PHP上传文件代码练习2 (重复文章)

    表单: <html> <head> <meta http-equiv="Content-Type" content="text/html; ...

  8. SpringMvc通过controller上传文件代码示例

    上传文件这个功能用的比较多,不难,但是每次写都很别扭.记录在此,以备以后copy用. package com.**.**.**.web.api; import io.swagger.annotatio ...

  9. php上传文件代码解析

    思想:把html的input标签组织成一个数组,然后去重 关键技术涉及的函数 is_dir mkdir move_uploaded_file() 涉及的数组 预定义数组$_FILES 步骤一:检查上传 ...

随机推荐

  1. 算法(5)Jump Game

    题目:非负数的数组,每个数组元素代表这你能最大跨越多少步,初始在0的位置,问,能不能正好调到数组的最后一位! https://leetcode.com/problems/jump-game/#/des ...

  2. calendar components

    calendar components 日历 angular, react, vue ??? react https://github.com/intljusticemission/react-big ...

  3. Docker实战系列一:初识Docker for Windows

    windows下安装Docker官网教程Install Docker for Windows Docker配置官网教程Get started with Docker for Windows

  4. 大步小步算法模板题, poj2417

    大步小步模板 (hash稍微有一点麻烦, poj不支持C++11略坑) #include <iostream> #include <vector> #include <c ...

  5. Swing中使用UIManager批量自定义单一JComponent组件默认属性

    最近在研究Swing,被它的复杂性气的快吐血了,刚才本打算把JFrame的背景色换成白底,结果发现事情没想象中那么顺利,调用setBackground完全没有效果,猛然醒悟到JPanel本身是带不透明 ...

  6. 使用es6一行搞定文字溢出省略号

    使用的是es6中扩展字符串方法参考地址 padStart(),padEnd() 使用padStart() 两个参数padStart(字符串最小长度,用来补全的字符串): 例如 let str = '1 ...

  7. 你知道HTML标签设计的本意吗?

    “DIV+CSS”这个词汇不知道害了多少人,也许其提出者本意并没有错,但是跟风者从表现曲解了其意思,认为整个页面就应当是DIV+CSS文件的组合.这样做,对于视觉上并没有什么影响,因为还原了之前设计的 ...

  8. Codeforces Round #348 (VK Cup 2016 Round 2, Div. 2 Edition) A

    A. Little Artem and Presents time limit per test 2 seconds memory limit per test 256 megabytes input ...

  9. 安卓下拉刷新空间SwipeRefreshLayout的基本使用

    1.先写布局文件 <android.support.v4.widget.SwipeRefreshLayout android:id="@+id/refresh" androi ...

  10. sqrti128

    求平方根下取整,对于gcc type __uint128_t. ~45.5ns/op on i7-7700k@4.35G,即typical <200cyc/op. Together with u ...