Clinet 進行擷圖後存檔且將檔案傳送到Server。
Server:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | import socket import time
Host = '127.0.0.1' Port = 8000
#建立圖片檔案位置。 imagefile = open('D:\\Test' + time.strftime('%Y-%m-%d-%H-%M-%S') + '.jpg', 'wb+') #設定IP4連結及TCP/IP連結方式。 with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock: sock.bind((Host, Port)) print(Host,':'+ str(Port) + ' Wait for connection.....') sock.listen(1) #等待連結。 conn, ClientIp = sock.accept() #接受Client傳來的圖片。 while True: imagedata = conn.recv(1024) #當資料後停止接受。 if not imagedata : break #將接受的資料寫入。 imagefile.write(imagedata)
print('image receive to finish')
conn.close()
|
Client:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | import socket import pyscreenshot import time
#擷取全螢幕畫面。 image = pyscreenshot.grab() #image.show() #擷圖後所存的檔案位置,檔名為目前日期。 imagefile = 'D:\\' + time.strftime('%Y-%m-%d-%H-%M-%S') + '.jpg' image.save(imagefile, quality=100)
Host = '127.0.0.1' Port = 8000
sendfile = open(imagefile, "rb+")
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: try: #判斷Server是否可以連線,無法連線錯誤碼10061。 if s.connect_ex((Host, Port))==10061: print('無法連線') else: #傳送圖片到Server。 while True: imagedata = sendfile.readline(1024) if not imagedata: print('image transfer to finish') break s.sendall(imagedata) except Exception as e: print(f'An Error occurred:',e)
|
沒有留言:
張貼留言