2012-08-17 57 views
0

這是我的任務:使用套接字通信連接PC和手機。在發送消息時,我在套接字連接中輸入了一個問題。我使用eclipse從PC運行程序到手機。我在文本框中輸入我的文字。當我按下發送按鈕時,我無法發送文本,並讓它反映在電話上。程序代碼不再有錯誤。 這是我得到的代碼的鏈接:http://android-er.blogspot.sg/2011/01/simple-communication-using.html無法使用套接字通信從PC和手機發送消息

這些都是我的代碼沒有任何錯誤:

public class AndroidClient extends Activity { 

EditText textOut; 
TextView textIn; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.socket_client); 

    textOut = (EditText)findViewById(R.id.textout); 
    Button buttonSend = (Button)findViewById(R.id.send); 
    textIn = (TextView)findViewById(R.id.textin); 
    buttonSend.setOnClickListener(buttonSendOnClickListener); 
} 

Button.OnClickListener buttonSendOnClickListener 
= new Button.OnClickListener(){ 

    @Override 
    public void onClick(View arg0) { 
     // TODO Auto-generated method stub 
     Socket socket = null; 
     DataOutputStream dataOutputStream = null; 
     DataInputStream dataInputStream = null; 

     try { 
      socket = new Socket("10.217.137.207", 8888); 
      dataOutputStream = new DataOutputStream(socket.getOutputStream()); 
      dataInputStream = new DataInputStream(socket.getInputStream()); 
      dataOutputStream.writeUTF(textOut.getText().toString()); 
      textIn.setText(dataInputStream.readUTF()); 
     } catch (UnknownHostException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
     finally{ 
      if (socket != null){ 
       try { 
        socket.close(); 
       } catch (IOException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 
      } 

      if (dataOutputStream != null){ 
       try { 
        dataOutputStream.close(); 
       } catch (IOException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 
      } 

      if (dataInputStream != null){ 
       try { 
        dataInputStream.close(); 
       } catch (IOException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 
      } 
     } 
    }}; 
} 
+0

您可以添加Logcat輸出嗎? – cyroxx 2012-08-17 08:36:46

回答

0

它從你試圖打開從設備到外部的插座連接的代碼似乎具有給定IP的設備[10.217.137.207]。

只有在使用您正在測試的設備的IP時,此代碼才能正常工作。 嘗試使用127.0.0.1

dataInputStream.readUTF(); 

將返回任何東西當且僅當它被從設備寫入與IP [10.217.137.207。

如果您使用的設備的IP地址,然後

dataInputStream.readUTF(); 

將返回所有你

dataOutputStream.writeUTF() 

寫我相信它必須明確。