日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

python實現同一局域網下傳輸圖片

瀏覽:28日期:2022-08-01 17:20:44

簡述

Python可以通過網絡套接字來進行傳輸圖片 這點還是比較有意思的。

下面用TCP來進行實現,適用于Python3

代碼功能簡述

下面代碼

實現了在一個電腦上發送圖片(Sender) 實現了在另外一個電腦(也可以是同一個電腦上的不同端口)接受圖片(Reciever) 只發一次,然后只收一次 新圖片會在舊圖片上多一個 “new_”前綴 必須要先開接受者代碼才行,之后再啟動發送者代碼(不然發送者代碼會直接被拒絕) 下面是固定了在一個電腦上(看ip地址,下面寫的是127.0.0.1,如果是其他電腦就寫其他電腦上的ip地址) 另外本程序只能在同一個局域網下使用(就算是廣域網上,那就必須要使用廣域網的ip地址)

代碼

【后附解析】

Sender.py (發送者)

import socketimport osimport sysimport structdef sock_client(): try: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((’127.0.0.1’, 6666)) except socket.error as msg: print(msg) print(sys.exit(1)) while True: filepath = input(’input the file: ’) # filepath = ’test.png’ fhead = struct.pack(b’128sl’, bytes(os.path.basename(filepath), encoding=’utf-8’), os.stat(filepath).st_size) s.send(fhead) print(’client filepath: {0}’.format(filepath)) fp = open(filepath, ’rb’) while 1: data = fp.read(1024) if not data:print(’{0} file send over...’.format(filepath))break s.send(data) s.close() breakif __name__ == ’__main__’: sock_client()

Reciever.py (接受者)

import socketimport osimport sysimport structdef socket_service(): try: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) s.bind((’127.0.0.1’, 6666)) s.listen(10) except socket.error as msg: print(msg) sys.exit(1) print('Wait') while True: sock, addr = s.accept() deal_data(sock, addr) break s.close()def deal_data(sock, addr): print('Accept connection from {0}'.format(addr)) while True: fileinfo_size = struct.calcsize(’128sl’) buf = sock.recv(fileinfo_size) if buf: filename, filesize = struct.unpack(’128sl’, buf) fn = filename.decode().strip(’x00’) new_filename = os.path.join(’./’, ’new_’ + fn) recvd_size = 0 fp = open(new_filename, ’wb’) while not recvd_size == filesize:if filesize - recvd_size > 1024: data = sock.recv(1024) recvd_size += len(data)else: data = sock.recv(1024) recvd_size = filesizefp.write(data) fp.close() sock.close() breakif __name__ == ’__main__’: socket_service()

解析:

發送者代碼:

還是先創建TCP套接字,并發起連接:

具體代碼如下:

try: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((’127.0.0.1’, 6666)) except socket.error as msg: print(msg) print(sys.exit(1))

接下來的While循環中,就開始進行圖片發送

通過struct庫進行打包,然后再用套接字來發送 注意:網絡上的有些代碼是不能直接用的,比如在這里,就需要把str變成bytes 通過os庫來獲取文件的基本名(這個是為了避免有些文件中包含具體路徑) 通過os庫來獲取文件的大小(通過文件狀態中關于大小的描述中獲取到)

fhead = struct.pack(b’128sl’, bytes(os.path.basename(filepath), encoding=’utf-8’), os.stat(filepath).st_size)s.send(fhead)

之后再通過二進制方式來獲取文件。 然后再發送出去,每次發送固定長度的數據。先讀,再判斷是否為空,再發送。

接受端:

還是一樣,先創建套接字(不過這個需要綁定對應的ip以及端口) 具體代碼如下:(這里寫的是監聽10個套接字對象,但是在我們代碼中并沒喲用到)

try: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) s.bind((’127.0.0.1’, 6666)) s.listen(10) except socket.error as msg: print(msg) sys.exit(1)

之后就進入到循環,來判斷,是否獲取到sock對象,這里是會進入阻塞狀態的。

deal_data中就開始通過連接的對象來獲取數據。

一樣,還是一個無限循環,但其實本質上還是空的。。。沒什么特別的。

之后就是對于傳過來的文件名處理一下,這里的這些“128sl”,其實就是一個大小規模(類似于打包的箱子大小的樣子)。然后就是得到新的文件名了。 對應的代碼如下:

filename, filesize = struct.unpack(’128sl’, buf)fn = filename.decode().strip(’x00’)new_filename = os.path.join(’./’, ’new_’ + fn)

之后的recvd_size,其實就是為了來計數的標簽 之后就不斷地收,邊收邊寫入文件,一直到收完了之后。就關閉掉對應的文件流 最后關閉套接字,退出循環

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲精品福利| 亚洲黄色中文字幕| 亲子伦视频一区二区三区| 国产精品xxx在线观看| 国产精品一页| 电影91久久久| 久久精品国产99久久| 婷婷国产精品| 亚洲欧洲一区二区天堂久久| 欧美日韩高清| 天堂成人免费av电影一区| 日韩精品一二三区| 91精品视频一区二区| 国产精品videossex久久发布| 你懂的亚洲视频| 日本精品影院| 中文视频一区| 日韩免费精品| 国内在线观看一区二区三区| 亚洲第一精品影视| 青青青国产精品| 亚洲电影有码| 91精品在线免费视频| 四季av一区二区凹凸精品| 亚洲精品一区二区妖精| 欧美三级第一页| 久久一区二区三区电影| 欧美欧美黄在线二区| 91精品高清| 老司机精品在线| 丝袜美腿亚洲一区| 成人精品动漫一区二区三区| 亚洲国内精品| 久久精品国产99国产| 亚洲tv在线| 黄色亚洲大片免费在线观看| 精品国产一区二区三区性色av| 视频一区国产视频| 99精品综合| 国产精品精品| 日韩一区二区三区在线看| 伊伊综合在线| 91嫩草亚洲精品| 国产精品扒开腿做爽爽爽软件| 午夜国产精品视频| 久久久久免费av| 成人在线视频免费看| 日本亚洲欧美天堂免费| 国产精品普通话对白| 欧美精品一二| 久久高清免费| 日韩成人亚洲| 日韩免费高清| 成人在线免费观看91| 国产精品15p| 日韩动漫一区| 日韩**一区毛片| 日韩国产在线观看| 日韩一区二区三区免费视频 | 亚洲欧洲一区| 久久国产日韩| 九色porny丨国产首页在线| 久久免费精品| 国产成人精选| 日韩免费看片| 久久天堂成人| 国产视频一区三区| 99视频精品| 蜜臀av一区二区在线免费观看| 蜜桃久久av一区| 国产精区一区二区| 久久麻豆视频| 亚洲国内精品| 日韩高清一区二区| 精品国产中文字幕第一页| 久久精品系列| 成人看片网站| 蜜乳av另类精品一区二区| 日本亚洲视频| 久久精品一区| 欧美va亚洲va日韩∨a综合色| 免费国产自线拍一欧美视频| 亚洲精品少妇| 精品72久久久久中文字幕| 亚洲成人不卡| 亚洲精品第一| 91av亚洲| 日韩精品五月天| 国产精品久久观看| 免费一区二区视频| 精品视频自拍| 亚洲性色视频| 国产亚洲观看| 中文在线一区| 精品网站999| 伊人久久大香伊蕉在人线观看热v| 国产日韩三级| 中文久久精品| 91精品久久久久久久久久不卡| 综合激情在线| 综合日韩av| 国产精品久久久久久久久久齐齐| 伊人久久婷婷| 精品国产乱码久久久久久1区2匹| 国产精品7m凸凹视频分类| 国产精品九九| 噜噜噜久久亚洲精品国产品小说| 在线看片国产福利你懂的| 日韩av在线免费观看不卡| 色爱综合av| 免费一级欧美片在线观看网站| 午夜国产精品视频| 三级在线看中文字幕完整版| 国产精品久久久久77777丨 | 日韩黄色免费网站| 欧美精品黄色| 香蕉精品视频在线观看| 美女av一区| 国产精品porn| 在线精品亚洲| 日本欧美在线看| 亚洲男女自偷自拍| 婷婷丁香综合| 1024精品久久久久久久久| 日本欧美不卡| 日韩在线视频精品| 九九久久国产| 精品中国亚洲| 日韩大片在线播放| 久久国产毛片| 尤物网精品视频| 日韩视频免费| 国产精品嫩草99av在线| 午夜久久黄色| 亚洲欧美视频一区二区三区| 美女精品一区| 日本va欧美va精品发布| 国产精品视频一区二区三区综合| 国产精品视频3p| 蜜臀国产一区| 人人精品人人爱| 久久国产麻豆精品| 国产成人1区| 不卡一区2区| 日韩精品五月天| 欧美激情另类| 日韩在线一区二区| 国产欧美一区二区三区米奇| 精品高清久久| 99国产精品| 欧美国产专区| 亚洲电影在线一区二区三区| 91亚洲无吗| 91精品久久久久久久久久不卡| 在线看片日韩| 国产一区二区三区不卡av | 日韩国产欧美一区二区三区| 久久久久黄色| 综合国产在线| 精品免费在线| 激情综合网站| 国产乱子精品一区二区在线观看| 欧美aa在线观看| 国产精品嫩模av在线| 亚洲国产一区二区在线观看| 青青国产精品| 国产一区二区高清| 在线人成日本视频| 欧美天堂一区| 免费在线视频一区| 99久久久久国产精品| 国产麻豆精品久久| 日韩在线一二三区| 久久人人88| 天堂av在线| 欧美精品福利| 先锋影音国产一区| 日韩欧美一区二区三区在线观看| 国产探花一区| 日韩av不卡在线观看| 国产亚洲一级| 一区在线免费| 人人草在线视频| 亚洲综合日本| 欧美日韩视频| 午夜天堂精品久久久久| 日本不卡视频一二三区| 麻豆久久一区| 亚洲午夜天堂| 免费视频亚洲| 蜜臀久久99精品久久久久久9 | 国产视频一区三区| 日韩在线卡一卡二| 久久av资源| 日韩理论片av| 影视先锋久久| 日韩av一二三| 狠狠爱成人网| 精品不卡一区| 日韩中文字幕麻豆|