Android 기술 Q&A 
Q&A 게시판에 질문을 남기신 글에 대한 답변/덧글/쪽글에 대한 Push 메일 서비스를 받고자 하시는 분들은
☞ Push 메일 서비스 공지를 필독하시기 바랍니다.
socket통신 질문이요~~
작성자
작성일 2008-06-23 (월) 21:23
ㆍ추천: 0  ㆍ조회: 11330      
IP: 210.xxx.146
android로 만든 소스가, 클라이언트이고,
그냥 일반 java로 만든 소스가 서버일 경우에는,
잘돌아갑니다.
(컴퓨터 두대로 합니다. 각자 컴퓨터는 고정 아이피 있구요)
그런데 android를 서버로 만들고,
일반 java로는 클라이언트,
 
혹은 android 서버와 android 클라이언트를 할 경우,
port redirection을해야 돌아간다 하셨는데요.
 
그래서저는
 
 
 
android client에는 서버 포트를 12345로 셋팅
android server에는 서버 포트를 12346으로 셋팅하고
 
port redirection 을 sever컴퓨터에
1. telnet localhost 5554
2. redir add tcp:12345:12346
 
으로  셋팅후에 컴파일을 시키니,
 
server 도 대기중이고
client 도 대기중으로 나옵니다.
 
계속 바꿔가면서 했는데도 결과는 같네요... ㅇ ㅏ,,, 답답합니다. ㅡㅡ 맞게 한듯한데,,
 
도움을 주세요, ㅠㅠ

 
이름아이콘 들풀
2008-06-23 21:39
1. 안드로이드 emulator상의 안드로이드 app. 로서의 tcp socket server
   (tcp socket bind port가 12345 으로 source 내에 설정되어 있는 경우)
  일단 네트웍상의 application으로서의 tcp socket client의 경우.
  그리고, 설정이 안드로이드가 설치된 컴상에서 아래와 같이 되어 있다면,
   - telnet localhost 5554
   - redir add tcp:12345:12346  
 
테스트를 위해서는 cmd 상에서 아래와 같이 실행해 보세여.
telnet localhost 12345
만약 connection이 형성되지 않는다면 서버를 잘못만든거겠죠..

그래도 안되시면...소스 올리시면 봐 드릴께여..~수고.
   
이름아이콘 후니~
2008-06-23 22:20
connection 은 형성 되는듯해요 telnet localhost 12345쳤더니 어떤 다른 화면으로 넘어가네요

클라이언트 측에서 12345 로 접속 하고 서버 소스 측은 12346 으로 바인딩 시키는거 아닌가요?
   
이름아이콘 후니~
2008-06-23 22:24
public class Server implements Runnable{  
   public static final int SERVERPORT = 12346;  
   public static final String SERVERIP = "210.118.64.146";  
     
   public void run() {  
       try {  
           Log.d("TCP", "S: connecting..");  
           ServerSocket serverSocket = new ServerSocket(SERVERPORT);  
 
           while (true) {  
               Socket client = serverSocket.accept();  
               Log.d("TCP", "S: recieving..");
 
               try {  
                   BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));  
                   String str = in.readLine();  
                   Log.d("TCP", "S: Received: '" + str + "'");
               } catch(Exception e) {  
                   Log.e("TCP", "S: Error", e);  
                   System.exit(1);  
               } finally {  
                   client.close();  
                   Log.d("TCP", "S: done");
               }  
           }  
 
       } catch (Exception e) {  
           Log.e("TCP", "S: Error", e);  
           System.exit(1);
           
       }  
   }
}

서버측 소스구요... 안되요...ㅠㅠㅠㅠ
   
이름아이콘 들풀
2008-06-23 22:36
일단 client는 12345 로 접속하고..server는 12346 bind하는 것도 정확하고..
telnet으로 12345로 접속되면 connection은 문제없는듯..
나머지는 통신자체의 문제인듯 합니다...
source는 내일 시간날때 한번 돌려볼께요...수고.
   
이름아이콘 후니~
2008-06-23 22:39
정말 너무 수고해주시는군요,  감사하단말밖엔 못하겠네요, ;; 감사합니다. ~~
   
이름아이콘 들풀
2008-06-23 23:10
아마도 서버 IP를 127.0.0.1 로 하면 될듯 합니다.
제가 간단한 sample 답글로 첨부하니 참고하세여.
   
이름아이콘 후니~
2008-06-24 05:16
public static final String SERVERIP = "127.0.0.1";  
이렇게 바꿔봣자 서버 에 소스는 SERVERIP 라는 변수가 쓰이는 곳이 없습니다.
SERVERIP라는 변수는 한컴퓨터에서 테스트할때 사용 했는데요. 저같은경우는 두컴퓨터로 사용하다 보니,
SERVERIP라는 변수는 생략하고 Client 측에서 직접 접속할 서버 IP를 적습니다.

그리고 portredirection 같은 경우에는

루프백 안에서 밖에 redirection이 안된다고 하네요

그래서 public ip로 접속해서 들어오는것은 루프백으로 바꿔줘야 한다고 해요.

간단히 말해서 다른 컴퓨터에서 또, 다른 컴퓨터로 전송해주는것은 또 다른 방식으로 해야한데요

그래서 , 그 방법을 찾는 중입니다... .. .. ..
   
이름아이콘 들풀
2008-06-24 16:14
네....잘 이해는 안되지만...답을 찾길 바랄께여..수고..
   
 
덧글 쓰기 0
3500
※ 회원등급 레벨 0 이상 읽기가 가능한 게시판입니다.
    N     분류     제목    글쓴이 작성일 조회
4903 안드로이드에서 실행되었던 프로그램 지우는법 좀 알려주세요.. 2008-06-20 9414
4902 Openembedded 사용법 아시는분 계신가요? 2008-06-20 9160
4901 Re..OpenEmbedded 관련 발표자료입니다. 2008-06-20 14752
4900 SDK 에뮬상에서 바탕화면관련 질문 입니다. 2008-06-23 8539
4899 port redirection에 대한 질문입니다. 2008-06-23 14471
4898 socket통신 질문이요~~ 2008-06-23 11330
4897 [To:후니~] TCP Soc Server sample 2008-06-23 8468
4896 MediaPlayer 질문 2008-06-26 8896
4895 여러분, 혹시 m3버전의 sdk를 가지고 있으세요? 2008-06-27 8513
4894 타 application 연동 관련 2008-06-28 8304
4893 인베인님 에뮬에서 돌아가는 바이너리 만들기??.. 2008-07-02 8323
4892 안드로이드 포팅보드 선택(헬프~~) 2008-07-04 9311
4891 부팅 시간이 궁금해서 질문 올립니다. 2008-07-09 8437
4890 android에서 지원 되는 코어가 궁금합니다. 2008-07-10 8130
4889 음성녹음 2008-07-22 9351
4888 에뮬레이터에서 JNI 가능한가요? 2008-07-29 9289
4887 android 와 awt, swing 2008-08-05 11332
4886 좀 무식한 질문입니다 2008-08-05 8075
4885 회색님,들풀님 이거 좀 해결해주세요. 2008-08-15 8078
4884 안드로이드 포팅 메모리 최소용량 ? 2008-08-18 11179
4883 0.9_beta 버젼에서 sdcard에 파일 저장하기에 대해서 궁금합니.. 2008-08-21 10698
4882 포팅에 관한 질문드립니다 2008-08-26 8101
4881 i.mx31ads - android 실행중 error 문제 입니다. 2008-08-27 11613
4880 음성레코딩 소스 좀 부탁 드립니다. 2008-09-01 8429
4879 안드로이드에 3d 모델 로딩 2008-09-08 10817
4878 안드로이드? 구글 폰? 2008-09-09 8475
4877 UI 구성에 대해서 여쭤봅니다. 2008-09-16 8251
4876 기본적인 mapViewer 를 이용한 코드인데요 2008-09-17 10340
4875 안드로이드 emulator에 GPS 사용 안되나요? 2008-09-18 10698
4874 soap client 구현을 위한 개념좀 설명해주세요~ 2008-09-20 12006
4873 안드로이드 init 에러 2008-09-22 10322
4872 AIDL 관련 질문입니다. 2008-09-28 10052
4871 0.9beta버전 기본적으로 있는 프로그램에 대해 여쭤봅니다... 2008-09-30 8179
4870 밑에 질문에 이어 비슷한 질문 하나 더 드립니다... 2008-10-01 8432
4869 custom Attributes 문의 2008-10-06 8958
4868 SD카드 파일 복사 관련 질문입니다,,, 2008-10-06 11304
4867 [질문] android touch Calibration 2008-10-09 10488
4866 m5버전 이클립스 ADT 구할수없을까요? ㅠ_ㅠ 2008-10-10 8813
4865 비디오 플레이어를 만들고 있는데.. 조언 좀.. 2008-10-12 9416
4864 초보적인 질문좀 하나좀. 2008-10-14 8468
4863 질문좀 드려도 될까?? 2008-10-14 8418
4862 에뮬레이터의 스킨에 대해서.. 2008-10-14 8651
4861 LCD 관련 질문 2008-10-18 8299
4860 안드로이드 플렛폼 관련 질문 2008-10-20 8470
4859 에물레이터에서 이미지 추출할때 2008-10-20 8554
4858 Re..에물레이터에서 이미지 추출할때 2008-10-20 8716
4857 소캣 프로그래밍 질문입니다. 2008-10-22 10461
4856 포팅시 key 관련 사항 2008-10-22 8679
4855 Android Eror 문의 2008-10-22 9663
4854 에뮬레이터 리셋 방법은 없나요? 2008-10-24 11562
12345678910,,,101