2014-10-19 52 views
-2

我工作的資深項目,我想使用此代碼從TCP套接字讀取,但其從插座中一次一次讀取,但我需要一個連續的讀數連續閱讀?

任何提示 提前感謝! 這是代碼:

class ClientAsyncTask extends AsyncTask<String, String, String> { 
    @Override 
    protected String doInBackground(String... params) { 
    String result = null; 
    try { 

    Socket socket = new Socket(params[0], 
     Integer.parseInt(params[1])); 

    InputStream is = socket.getInputStream(); 

    PrintWriter out = new PrintWriter(socket.getOutputStream(),true); 

    out.println(params[2]); 

    BufferedReader br = new BufferedReader(
     new InputStreamReader(is)); 
    //Read data in the input buffer 
    result = br.readLine(); 
    //Close the client socket 
    socket.close(); 
    } catch (NumberFormatException e) { 
    e.printStackTrace(); 
    } catch (UnknownHostException e) { 
    e.printStackTrace(); 
    } catch (IOException e) { 
    e.printStackTrace(); 
    } 
    return result; 
    } 
+1

你知道什麼是一段時間的陳述嗎? – karim 2014-10-19 15:51:48

回答

0

也許你可以使用一個循環的周而復始中?由於正式文件與方法

 socket.close() 

您關閉套接字之前: Java doc

一旦插座已經關閉,但不適用於進一步的網絡使用(即無法重新連接或反彈)。

+0

感謝您的答覆我試了這個,但仍然無法正常工作 – 2014-10-19 16:06:21

+0

我可以在看到我的建議後輸入代碼嗎? – igor29 2014-10-19 16:23:55

+0

while(true)InputStream is = socket.getInputStream(); PrintWriter out = new PrintWriter(socket.getOutputStream(),true); out.println(params [2]); //緩衝來自輸入流的數據 BufferedReader br = new BufferedReader( new InputStreamReader(is)); result = br.readLine(); } – 2014-10-19 16:42:43