본문 바로가기

프로그래밍/Android

소켓통신 기본사항

 

 

클라이언트

 

* 기본사항

 

InetAddress

Socket            : 소켓

InputStream     : 입력 스트림 - 바이트 단위 입력 스트림

InputStreamReader   : 바이트 스트림으로부터 문자 단위로 읽어들임. 지정한 문자 인코딩에 따라 변환

BufferedReader        :  리더에 버퍼 기능을 추가한 입력 스트림 클래스

 

OutputStream           : 출력용 스트림

OutputStreamWriter   : 문자단위 출력

BufferedWriter          : 버퍼 기능

PrinterWriter             : 형식있는 텍스트를 스트림을 통해 출력(println 같은 메쏘드 지원) 

 

* 초기화

 

// 서버에 연결할 소켓을 생성

InetAddress addr = InetAddress.getByName( "서버ip" );

Socket   mClient = new Socket(  addr, 서버port );

 

// 입출력 스트림을 얻음

InputStream  mInStream = mClient.getInputStream();

OutputStream mOutStream = mClient.getOutputStream();

BufferedReader mReader = new BufferedReader( new InputStreamReader( mInputStream ) );

PrinterWriter mWriter = new PrinterWriter( new BufferedWriter( new OutputStreamWriter ( mOutStream )) ), true);

 

 

* 기본 루프

> 수신부

byte[] buffer = new byte[2048];

int bytesRead = mReader.read( buffer );

 

> 송신부

mWriter.println( "보낼 문자열" );

mWriter.flush();

 

* 서버의 경우

ServerSocket 이라는 클래스 제공.

 

ServerSocket server = new ServerSocket( port );

server.accept();