1. 程式人生 > >使用一個簡單的python指令碼將一個本地檔案以碼流的形式,通過UDP協議傳送到對端:

使用一個簡單的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]