編輯:關於android開發
以Socket發送數據為例:
發送數據時候要聲明:DataOutputStream os = new DataOutputStream(socket.getOutputStream());
最近開發遇到的為題是我要向服務端發送圖片,如果os.close()的話服務器可以收到圖片但是我客戶端的socket會受影響關閉。如果不用os.close()的話,服務器接收圖片會有影響,查資料說調用socket.shutdownOutputStream();可以關閉輸出流,而且不會影響socket發送數據。
但是問題來了:DataOutputStream關閉了,但是客戶端還要繼續發送數據怎樣打開DataOutputStream呢?
本人沒有百度到合適的回答,所以再次發送數據的時候先判斷一下輸出流有沒有被關閉,如果被關閉的話,就再new一個Soket。。。。(個人感覺這個方法不雖然解決了當前的問題,但不是最好的,如果大家有更好的解決方案,請留言,不勝感激!!!!)
public void sendObject(String obj) throws IOException { //判斷輸出流是否已經關閉,如果關閉就重新new Socket if (socket.isOutputShutdown()) { socket = new Socket(SERVERIP, PORT); } DataOutputStream os = new DataOutputStream(socket.getOutputStream()); // os.write(obj.getBytes()); os.writeUTF(obj); os.flush(); System.out.println("客戶端發送" + obj + "到服務器"); }
如果有好的方法,感謝留言!!!
寮€鍙戝熀浜庨珮寰稴DK鐨凙ndroid杞﹁澆瀵艱埅搴旂敤杞‖浠剁幆澧?Macbook Pro MGX 72Android Studio 1.5.1閰鋒瘮榄旀柟7瀵稿鉤
【首發】AndroidStudio配置JavaCV環境 由於最近參加一個比賽需要用到人臉識別,但賽方限制使用第三方服務商提供的API雲服務調用,因此想到了
Android 攜程動態加載框架的打包流程分析 最近攜程開源了一套動態加載的框架,總的來說,該框架和OpenAtlas還是有一定的相似之處的,比如資源的分區。此外該框架也
Android性能優化之常見的內存洩漏 前言 對於內存洩漏,我想大家在開發中肯定都遇到過,只不過內存洩漏對我們來說並不是可見的,因為它是在堆中活動,而要想檢測程序中是