- 嘿,美好的一天!
- 我實作了一個簡單的程式來通過 python 套接字發送一個 numpy 陣列
這是 server.py
import socket
import numpy as np
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((socket.gethostname(), 1024))
s.listen(5)
print('Server is ready...')
while True:
client, adr = s.accept()
print(f'Connection to {adr} established')
myarray = np.array([[1,2],[3,4]])
client.send(myarray)
client.close()
這是client.py
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((socket.gethostname(), 1024))
getarray = s.recv(100)
print(getarray)
我想將 server.py 中的 myarray 發送到 client.py
我想讓 client.py 中的 myarray 100% 類似于 server.py 中的 myarray
**但是,當我運行 server.py 和 client.py 時,client.py 的輸出是這樣的 .. **
b'\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00'
- 我不知道編碼方法是什么(asci 或 utf-8 來解碼該代碼)
- 我怎樣才能解碼它?
謝謝 !
uj5u.com熱心網友回復:
您可以使用 pickle 將陣列物件編碼為位元組,然后發送。盡管根據陣列的大小,您可能需要更改接收它的方式,但 s.recv() 只會獲得一定數量的位元組,因此您需要先以位元組為單位發送陣列的大小,并且然后重復 s.recv 直到你擁有整個陣列。pickle.dumps(obj)將回傳物件的位元組流,并pickle.loads(obj)在收到所有物件后回傳原始物件。
希望有幫助:)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/454628.html
