2011-06-28 49 views
1

我需要在j2me設備上同時打開兩個http連接。所以我在兩個線程中打開了兩個HttpConnection。但有時一個連接收到另一個連接的數據。我怎麼解決這個問題?
我在諾基亞N70上測試應用程序。J2me多線程http數據泄露來自另一個線程

代碼很大。我嘗試寫一些簡單的僞代碼。

http.java:

public class Http 
{ 
    public Http() 
    { 
    } 

    public void start(String url) { 
     new Thread() { 
      public void run() { 
       getHttp(url); 
      } 
     }.start(); 

    } 

    private void getHttp(String url) { 

     InputStream is = null; 
     HttpConnection http=null ; 
     try { 
      http= (HttpConnection) Connector.open(url); 

      httpCode = http.getResponseCode(); 
      is = http.openInputStream(); 
      int ic; 
      byte[] tmp = new byte[1024]; 

      while (!cancel && (ic = is.read(tmp, 0, 1024)) != -1) { 
       line.append((char) ic); 
       bao.write(tmp, 0, ic); 
       } 
       //httpnotify.receive(bao.toByteArray) ; 
      } catch (Exception e) { 
      } 
     } 

} 

客戶端1:

Http http=new Http() ; 
http.setNotify(self) ; 
http.start("http://....") ; 

客戶端2:

Http http2=new Http() ; 
http2.setNotify(self) ; 
http2.start("http://....") ; 
+0

Ç ö請

+1

請告訴我們你是如何做到這一點。 –

回答

2

我認爲你需要使用​​關鍵字在getHttp()方法

相關問題