반응형
모바일 교육을 받다가 듣게 된 여담이다.
모바일 상에서의 소켓 프로그래밍은 일반 소켓 프로그래밍과 틀리지 않다.
다만, 잘 쓰지 않던 UDP를 쓸 경우가 종종 있다. 설계 관점에서 생각해볼만한 문제이다.
국내 통신과금은 패킷 단위이다. 그러므로 TCP로 하게 되면 많이 주고받기 때문에 패킷이 많이 과금되며 서버에서의 오버헤드도 심하다. 그러므로 모바일 상에서는 UDP를 쓰는 것이 좋다.
그러나 서버에서 데이터를 보내야 할 때는 어쩔 수 없이 TCP를 써야한다.
ex) 채팅
Android Socket Programming는 완벽히 J2SE와 동일하게 사용 가능하다.
* Mobile 단말에서의 통신이라 자주 끊길 수 있음을 감안해야 한다.
* TCP Protocol보다는 UDP Protocol을 권장하며, 가급적 Socket을 유지하는 것은 지양해야 한다.
Socket clientSocket = new Socket("localhost", 8000);
OutputStream out = clientSocket.getOutputStream();
InputStream in = clientSocket.getInputStream();
out.write(byte[]);
byte[] input = new byte[1024];
in.read(input);
<uses-permission android:name="android.permission.INTERNET" />
HTTP Client
Mobile상에서 주로 HTTP 통신을 선호한다. 안정적이라는게 이유가 될 것이다.
URL, HttpConnection 클래스를 이용하여 HTTP Client를 구현할 수 있다.
모바일 상에서의 소켓 프로그래밍은 일반 소켓 프로그래밍과 틀리지 않다.
다만, 잘 쓰지 않던 UDP를 쓸 경우가 종종 있다. 설계 관점에서 생각해볼만한 문제이다.
국내 통신과금은 패킷 단위이다. 그러므로 TCP로 하게 되면 많이 주고받기 때문에 패킷이 많이 과금되며 서버에서의 오버헤드도 심하다. 그러므로 모바일 상에서는 UDP를 쓰는 것이 좋다.
그러나 서버에서 데이터를 보내야 할 때는 어쩔 수 없이 TCP를 써야한다.
ex) 채팅
Android Socket Programming는 완벽히 J2SE와 동일하게 사용 가능하다.
* Mobile 단말에서의 통신이라 자주 끊길 수 있음을 감안해야 한다.
* TCP Protocol보다는 UDP Protocol을 권장하며, 가급적 Socket을 유지하는 것은 지양해야 한다.
OutputStream out = clientSocket.getOutputStream();
InputStream in = clientSocket.getInputStream();
out.write(byte[]);
byte[] input = new byte[1024];
in.read(input);
HTTP Client
Mobile상에서 주로 HTTP 통신을 선호한다. 안정적이라는게 이유가 될 것이다.
URL, HttpConnection 클래스를 이용하여 HTTP Client를 구현할 수 있다.
반응형
'Devlopment > Mobile' 카테고리의 다른 글
ListView 스크롤시 검은색 배경으로 바뀌는 문제 (0) | 2011.07.12 |
---|---|
안드로이드 GPS 위치 수신 (0) | 2011.07.12 |
Android 타이틀 바 관련. (0) | 2011.07.11 |
안드로이드 ListView구현시 Adapter의 getView 중복 호출 문제 (0) | 2011.07.11 |
[Android] 알림 - AlertDialog, Toast (0) | 2011.06.27 |
Android Sensor 활용 (0) | 2011.06.22 |
Android 진동 다루기 (0) | 2011.06.22 |
Android Camera (0) | 2011.06.22 |
Android Drawing (0) | 2011.06.21 |
안드로이드 OS Version 및 이름 (0) | 2011.06.20 |