2012-08-17 6 views
0

이것은 내 작업입니다. 소켓 통신을 사용하여 PC와 휴대 전화를 연결하는 중입니다. 소켓 연결에서 메시지를 보내는 데 문제가 있습니다. 나는 이클립스를 사용하여 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

답변

0

주어진 IP를 가진 장치 [10.217.137.207].

이 코드는 테스트중인 장치의 IP를 사용하는 경우에만 작동합니다. 아무것도 반환됩니다 127.0.0.1

dataInputStream.readUTF(); 

를 사용하려고하면과가 [10.217.137.207] IP와 장치에서 기록되는 경우에만 가능합니다. 당신이 당신의 장치의 IP 주소를 사용하는 경우

다음

dataInputStream.readUTF(); 

내가 분명히해야합니다 생각이

dataOutputStream.writeUTF() 

와 쓰기 모두를 반환합니다.

관련 문제