socket 上传文件代码
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 上传文件代码的更多相关文章
- PHP socket上传文件图片
最近了解了下下socket方面的东西,想做一个socket上传文件的例子. 在网上搜了搜代码执行后,图片数据传输了一半,图片的下半部分是灰色的.然后就自己仿着搜来的代码和php.net 中socket ...
- php 利用socket上传文件
php 利用socket上传文件 张映 发表于 2010-06-02 分类目录: php 一,利用fsockopen来上传文件 以前我写过一篇关于socket通信原理的博文http://blog.51 ...
- iOS上传文件代码,自定义组装body
以下代码为上传文件所用代码,简单方便,搞了好久,终于知道这么简单的方式来上传. 其它类库也就是把这几句代码封装的乱七八糟得,让你老久搞不懂原理.不就是在body上面加点字符串,body下面加点字符串, ...
- ExtJS + fileuploadfield上传文件代码
后台服务端接收文件的代码: /** * 后台上传文件处理Action */ @RequestMapping(value = "/uploadFile", method=Reques ...
- php 上传文件代码
通过 PHP,能够把文件上传到server.里面加入一些图片的推断,假设不加推断文件的类型就能够上传随意格式的文件. 为了站点的安全,肯定不让上传php文件,假设有人进入你的后台,上传了一个php文件 ...
- java上传文件代码
import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;impo ...
- PHP上传文件代码练习2 (重复文章)
表单: <html> <head> <meta http-equiv="Content-Type" content="text/html; ...
- SpringMvc通过controller上传文件代码示例
上传文件这个功能用的比较多,不难,但是每次写都很别扭.记录在此,以备以后copy用. package com.**.**.**.web.api; import io.swagger.annotatio ...
- php上传文件代码解析
思想:把html的input标签组织成一个数组,然后去重 关键技术涉及的函数 is_dir mkdir move_uploaded_file() 涉及的数组 预定义数组$_FILES 步骤一:检查上传 ...
随机推荐
- Eclipse的优化方案
General > Startup and Shutdown : 移除所有在启动时加载的插件. General > Editors > Text Editors > Spell ...
- Beats数据采集
Beats数据采集 Beats是elastic公司的一款轻量级数据采集产品,它包含了几个子产品: packetbeat(用于监控网络流量). filebeat(用于监听日志数据,可以替代logstas ...
- 大数据Hadoop-2
大数据Hadoop学习之搭建Hadoop平台(2.1) 关于大数据,一看就懂,一懂就懵. 大数据的发展也有些年头了,如今正走在风口浪尖上,作为小白,我也来凑一份热闹. 大数据经过多年的发展,有着不同的 ...
- 【题解】APIO2007动物园
首先一眼感受到这题特别的性质……5个?这么小的,感觉就像是状压.脑补了一下,如果没有环的话应该很好做吧……有环怎么办?5真的很小的,随便乱搞肯定也可以.那就放在外面暴力枚举吧.然后正解就出来了. 然而 ...
- [ZJOI2005]沼泽鳄鱼 矩阵乘法
---题面--- 题解: 乍一看还是挺懵逼的.和HH去散步很像,思路也是类似的. 复制一段我在HH去散步的题解里面写的一段话吧: 考虑f[i][j]表示i和j是否右边相连,有为1,否则为0,那么f同时 ...
- ACM模板~求逆序对的个数
#include <map> #include <set> #include <cmath> #include <ctime> #include < ...
- gitlab7.2安装
系统:centos6.4 1.安装依赖包 导入epel: useradd git wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-rel ...
- Hbase写入量大导致region过大无法split问题
最近在线上往hbase导数据,因为hbase写入能力比较强,没有太在意写的问题.让业务方进行历史数据的导入操作,中间发现一个问题,写入速度太快,并且业务数据集中到其中一个region,这个region ...
- 获取html元素内容
html: <!DOCTYPE ><html> <head> <meta http-equiv="Content-Type" conten ...
- 【Atcoder】ARC083 D - Restoring Road Network
[算法]图论,最短路? [题意]原图为无向连通图,现给定原图的最短路矩阵,求原图最小边权和,n<=300. [题解]要求最小边权和下,原图的所有边一定是所连两端点的最短路. 那么现在将所有最短路 ...