python 通过UDP传输文件
2014-05-08 20:30
417 查看
使用一个简单的python脚本将一个本地文件以码流的形式,通过UDP协议发送到对端:
import socket
import os
import stat
import struct
MAX_PACK_SIZE = 100
DEST_IP = 'localhost'
DEST_PORT = 17800
filename = raw_input("input filename")
filesize = os.stat(filename)[stat.ST_SIZE]
f = open(filename, "rb")
chList = []
for i in range(0, filesize):
(ch,) = struct.unpack("B", f.read(1))
chList.append(ch)
client = socket.socket( socket.AF_INET, socket.SOCK_DGRAM )
packSize = 0
string = ""
args = []
for i in range(0, filesize):
packSize = packSize + 1
string = string + struct.pack("B", chList[i])
if (MAX_PACK_SIZE == packSize or i == filesize - 1):
client.sendto(string, (DEST_IP, DEST_PORT))
packSize = 0
string = ""
client.close()
使用到的知识点:
1、UDP客户端最简单的实现:
client = socket.socket( socket.AF_INET, socket.SOCK_DGRAM )
client.sendto(string, (DEST_IP, DEST_PORT))
client.close()
2、python中对码流的操作:struct.pack 和 struct.unpack的使用
(ch,) = struct.unpack("B", f.read(1))
string = string + struct.pack("B", chList[i])
3、二进制文件的读取:
f = open(filename, "rb")
4、获得系统中某个文件的字节数
filesize = os.stat(filename)[stat.ST_SIZE]
import socket
import os
import stat
import struct
MAX_PACK_SIZE = 100
DEST_IP = 'localhost'
DEST_PORT = 17800
filename = raw_input("input filename")
filesize = os.stat(filename)[stat.ST_SIZE]
f = open(filename, "rb")
chList = []
for i in range(0, filesize):
(ch,) = struct.unpack("B", f.read(1))
chList.append(ch)
client = socket.socket( socket.AF_INET, socket.SOCK_DGRAM )
packSize = 0
string = ""
args = []
for i in range(0, filesize):
packSize = packSize + 1
string = string + struct.pack("B", chList[i])
if (MAX_PACK_SIZE == packSize or i == filesize - 1):
client.sendto(string, (DEST_IP, DEST_PORT))
packSize = 0
string = ""
client.close()
使用到的知识点:
1、UDP客户端最简单的实现:
client = socket.socket( socket.AF_INET, socket.SOCK_DGRAM )
client.sendto(string, (DEST_IP, DEST_PORT))
client.close()
2、python中对码流的操作:struct.pack 和 struct.unpack的使用
(ch,) = struct.unpack("B", f.read(1))
string = string + struct.pack("B", chList[i])
3、二进制文件的读取:
f = open(filename, "rb")
4、获得系统中某个文件的字节数
filesize = os.stat(filename)[stat.ST_SIZE]
相关文章推荐
- 在两个Android设备间通过UDP传输目录内文件
- 在两个Android设备间通过UDP传输目录内文件
- 使用一个简单的python脚本将一个本地文件以码流的形式,通过UDP协议发送到对端:
- 两台笔记本电脑之间直接通过一条网线(双绞线)传输大文件教程(有图有真相)不需要有网
- python起的 simpleHTTPServer服务传输文件
- 六、Socket之UDP异步传输文件-实现稳定的文件传输
- android手机怎样通过蓝牙传输文件
- 项目总结(四)----------Python实现Windows和Linux之间互相传输文件(文件夹)
- socket的UDP传输文件java源代码
- Python通过文件头来判断文件的真实类型
- VC++ UDP实现可靠传输(文件) UDX协议
- ARM开发板嵌入式linux系统与主机PC通过串口传输文件
- 通过python发送附带文件
- 通过python读取ini配置文件
- Linux下UDP传输文件示例
- Python 通过difflib模块实现文件内容差异对比
- 通过SSH安全协议传输文件(SecureCRT, SSH Secure File Transfer Client)
- udp传输大文件的一个例子
- 【python】实例-创建文件并通过键盘输入字符
- 通过Kivy将Python文件打包成apk