2013-03-12 2 views
0

나에게 화를 내면 안됩니다. 두 가지 질문이 있는데, 매우 비슷한 주제로 생각합니다. 그래서 그것을 하나로 합치기로했습니다. 나는 일부 계산을 할 센서를 사용하는 안드로이드에 내 애플 리케이션이 있습니다. 나는 내 데이터베이스에 결과를 저장하고있다. 내가하고 싶은 일은 휴대 전화의 데이터를 데이터베이스 (버튼 클릭시)와 함께 내 데스크톱 앱으로 전송하는 것입니다.android : PC 데스크톱 앱 및 원격 미디어 플레이어 컨트롤러와의 통신

더 정확하게 말하면 다음 예가 있습니다. 내 광 센서가 현재 광도를 읽습니다. 1000lux라고 말할 수 있습니다. 이제 안드로이드 앱에서 '보내기'버튼을 클릭하면이 값이 내 데스크톱 앱 데이터베이스로 전송됩니다. 해당 데스크톱 응용 프로그램은 해당 값을 읽고 사용자에게 표시합니다.

WIFI를 통해 가능합니까? 또는 더 나은 웹을 통해, 그래서 거리에 제한되지 않습니다? 어떻게 이러한 종류의 의사 소통을 안드로이드가 관리 할 수 ​​있습니까?

제 두 번째 질문은 제 PC의 미디어 플레이어를 제어하는 ​​것이 내가 말한 것과 비슷하다면입니다.

편집 :

나는 약간의 조사를했고 하나의 소켓 튜토리얼을 발견했다. 나는 거기에있는 것처럼 정확하게 그것을 시도했다. 그래서 난 내 안드로이드 응용 프로그램이 있습니다 넷빈즈에서

public class Client extends Activity { 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_client); 
    Client myCli = new Client(); 
    try { 
     myCli.run(); 
    } catch (Exception e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.activity_client, menu); 
    return true; 
} 


public void run() throws Exception { 

    Socket mySkt = new Socket("192.168.1.6", 9999); 

    PrintStream myPS = new PrintStream(mySkt.getOutputStream()); 

    myPS.println("Hello server"); 

    BufferedReader myBR = new BufferedReader 
    (new InputStreamReader(mySkt.getInputStream())); 


} 

}

이 :

//Author: WarLordTech 
//Website: http://www.youtube.com/user/WarLordTech 
import java.io.*; 
import java.net.*; 

public class Server { 
    public static void main(String[] args) throws Exception{ 
     Server myServ = new Server(); 
     myServ.run(); 
    } 

    public void run() throws Exception{ 
     ServerSocket mySS = new ServerSocket(9999); 
     Socket SS_accept = mySS.accept(); 

     BufferedReader SS_BF= new BufferedReader(new InputStreamReader 
     (SS_accept.getInputStream())); 

     String temp = SS_BF.readLine(); 
     System.out.println(temp); 

     if (temp!=null) { 
     PrintStream SSPS = new PrintStream(SS_accept.getOutputStream()); 
     SSPS.println("Got something"); 
     } 
    } 
} 

그것은 여전히 ​​밤은 workiong합니다. 어떻게 든 네트워크를 설정해야합니까?

+0

답변을 찾으셨습니까? 수정 답변이 올바른 것 같습니다. 문제는 무엇 이었습니까? – Sourabh86

답변

0

TCP 소켓을 사용하면됩니다. 많은 언어가 소켓 프로그래밍을 구현하고 있으므로 자바로 데스크톱 애플리케이션을 프로그래밍 할 필요가 있습니다 (물론 항상 가능합니다!).

Socket Tutorial in Java

이 그물과 지역 무선 랜을 통해 작동합니다. UDP 연결과 같은 로컬 와이파이의 다른 방법을 사용할 수 있습니다. TCP 서버를 설정하고 액세스 권한이 있는지 확인해야합니다.

이렇게 할 수있는 다른 방법이있을 수 있지만 그렇게 할 사소한 작업은 아닙니다.

+0

도움 주셔서 감사합니다. 내 데스크톱 앱을위한 것이지만 내 안드로이드 앱과 무슨 상관이 있습니까? 이것은 안드로이드에도 적용 할 수 있습니까? –

+0

그래, 똑같은 일 - 자바로 앱을 작성한다면 소켓을 사용할 수있다. 그런 다음 휴대 전화에서 데이터 연결을 사용합니다 (예 : wifi, 3g 연결). – Davos555

관련 문제