2013-02-23 116 views
0

我想讓一個更快的套接字客戶端每次發送RGB顏色,更快的調用應該是每秒1到10次。Android套接字客戶端緩慢

我使用這個代碼:

try { 
     socket = new Socket("192.168.0.9",1234); 
     try { 
       dataOutputStream = new DataOutputStream(socket.getOutputStream()); 


      //toServer = new BufferedWriter(new PrintWriter(socket.getOutputStream(),true)); 
      //out = new PrintWriter(new BufferedWriter(
      //  new OutputStreamWriter(socket.getOutputStream())), false);    
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } catch (UnknownHostException e1) { 
     Log.e("Error", "Error"); 
     e1.printStackTrace(); 
    } catch (IOException e1) { 
     Log.e("Error", "Error"); 
     e1.printStackTrace(); 
    } 

而且每次我從機械臂改變顏色的時候,我打電話這種方法在Python

dataOutputStream.writeUTF(";"+red+";"+green+";"+blue+";"+brightness+";"); 

我已經嘗試了腳本,並同樣,在2秒內100次,我沒有任何滯後。 我得到的是,python服務器正在等待新的請求,但Android需要時間通過套接字連接發送它們。 我其實嘗試了3種不同的方法來實例化輸出寫入,但只有DataOutputStream速度夠快,但仍然有一些滯後。

解決此問題的最佳方法是什麼?

回答

0

在DataOutputStream和套接字之間放置一個BufferedOutputStream,並在每個writeUTF()之後刷新DOS。在同級中,通過BufferedInputStream使用DataInputStream。