光阴似箭催人老,日月如移越少年。
具體問題出現在哪裡我還不是很清楚,不過我有一個建議:
客戶端在連接建立成功後不要發送文件大小,而是以固定的長度發送數據,每一組數據先發送一個標誌length,然後發送固定長度的數據,最後一條數據的長度可以很容易獲得,最後發送標誌0;
服務端先接受標誌length,然後接收相應長度的數據,length為0時文件傳輸結束;
length標誌的長度設定為4(夠1024的int用)
length = int(s.recv(4).decode('utf8'))。 f.write(s.recv(length))
具體問題出現在哪裡我還不是很清楚,不過我有一個建議:
客戶端在連接建立成功後不要發送文件大小,而是以固定的長度發送數據,每一組數據先發送一個標誌length,然後發送固定長度的數據,最後一條數據的長度可以很容易獲得,最後發送標誌0;
服務端先接受標誌length,然後接收相應長度的數據,length為0時文件傳輸結束;
length標誌的長度設定為4(夠1024的int用)