2011-04-11 7 views
2

안드로이드와 C# 간의 소켓 통신을 시도하고 있습니다. 막혔습니다.안드로이드와 C# 간의 프로세스 간 통신

이것은 기본적으로 내가 지금까지 가지고있는 코드입니다.

안드로이드 :

public void onClick(View v) { 
    try { 
     InetAddress serverAddr = InetAddress.getByName("localhost"); 
     Socket mySocket = new Socket(serverAddr, 666); 
    } catch (UnknownHostException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 

C 번호 :

TcpListener listener = new TcpListener(System.Net.IPAddress.Parse("127.0.0.1"), 666); 
listener.Start(); 

using (Socket socket = listener.AcceptSocket()) 
{ 
    using (Stream stream = new NetworkStream(socket)) 
    { 
    } 
} 

나는 다음과 같은 오류가 점점 오전 내 안드로이드 응용 프로그램에서 선 Socket mySocket = new Socket(serverAddr, 666); 타격.

-에 나를 안내 할 수

누구나 내가 뭘 잘못 "java.net.ConnectException : 로컬 호스트/127.0.0.1 666 연결 거부"?

추신 : 저는 에뮬레이터를 통해 테스트 중이므로 컴퓨터에서 실행중인 다른 프로세스와 통신 할 수있는 능력에 대한 제한이 있는지 궁금하십니까?

답변

4

에뮬레이트 된 시스템 내부에서 주소 127.0.0.1은 호스트의 루프백 인터페이스가 아니며, 에뮬레이트 된 시스템의 자체 루프백 인터페이스입니다.

emulator documentation에 따르면 특수 주소 10.0.2.2를 통해 호스트의 루프백 인터페이스에 액세스 할 수 있습니다.

+0

당신은 총입니다. 에 딱 맞다. 내 생각은 분명히 교차했다 ... 고마워! –

+0

예, Android 관련 질문입니다! 나는 프로그래밍 할 수없는 플랫폼의 문서에 숨어있는 북마크가 언제든지 편리하게 올 것임을 알았다 : P –

+0

롤, 그래도 나는 똑같은 일을한다. 플랫폼에 대한 열정의 순간을 거치고 연구하고 다른 것을주의 깊게 살펴보십시오! –

2

Android에서 127.0.0.1에 연결하려고 시도한 예외 세부 사항은 Android 기기를 의미합니다. 서버 소켓은 Windows 컴퓨터에 있으므로 연결할 수 없습니다.