我正在寫一個TCP python腳本,我需要前4個字節是文件的大小。你可以在python中壓縮字節併發送它們嗎?
我做
SIZE_OF_FILE = os.path.getsize(infile.name)
大小爲392399個字節拿到了文件的大小。
當我做
s.send(str(SIZE_OF_FILE).encode("utf-8"))
它發出的文件,然後在我的服務器我有
fileSize = conn.recv(4).decode('utf-8')
應顯示前4個字節,並提取文件大小信息,但它返回3923而不是392399.
作爲文件大小...發生了什麼事? 「392399」應該能夠適合4個字節。
我們假設要使用big endian。
是的,但不是_as字符串_...檢查'struct.pack'和'struct.unpack'函數。 –
_「392399」應該能夠放入4個字節中._ - 爲什麼會這樣? 「392399」由六個字符組成,一個字符需要至少一個字節。 – DyZ
哦,等一下,如果我把它作爲一個整數發送它會工作嗎?如果編碼需要一個字符串,我該怎麼做? – user5428151