直到遇到連接的裝置是Wi-Fi Module時,有TCP連線數限制時,發現卡死了,
唯有重開手機才有用,研究了很久,發現是以下幾個原因造成的。
1.因為動作需要頻繁重新建立Socket。
2.Android底層並不會在Socket.Close()時就立即關閉Socket,會等到資料傳輸完畢。
若要強制Socket立即關閉,在關閉Socket前先shutdown輸出入流。
socket.shutdownInput(); socket.shutdownOutput();
注意,這二行必須在inputstream.close()及outputstream.close()之前。
參考資料:
沒有留言:
張貼留言