본문 바로가기

Programming Practice/Java

Socket 통신

1. Socket 통신에 필요한 기능과 해당 기능을 수행하는 class와의 매핑

순번

기능 

class 

 비고

 1

Connect to a remote machine

Socket

'Send data' 와 'Receive data'는 동시에 진행이 가능함

 2

Send data

 3

Receive data

 4

Close a connection

 5

Bind to a port

ServerSocket

 

 6

Listen for incoming data

 7

Accept connections from remote machines on the bound port


2. server class 구성

 - 여러 client가 동시에 server 에 connect 해서 send data, receive data를 할 수 있음. 따라서 listen for incoming data 할 때마다 별도의 thread를 기동시켜 로직 처리를 해야 함.

 - 아래와 같이 구성할 수 있다.

 1) class는 Thread 를 확장

 2) 객체 변수로 Socket, DataInputStream, DataOutputStream을 선언한다.

 3) 생성자에서 Socket, DataInputStream, DataOutputStream을 설정한다.

 4) receive data, send data는 public void run() {} 에서 수행한다.

 5) public static void main(String args[]) {} 에서는 

  - Bind to a port (ServerSocket ss = new ServerSocket(port번호));

  - Listen for incoming data (Socket so = ss.accept();)

  - server class 객체 생성 및 Thread 의 run method 기동

- 예시)


3. client class 구성 

 - 특정 event가 발생했을 때 (ex. 웹페이지 화면에서 버튼을 눌렀을 때) 호출되는 일반 method 내에서 로직 처리를 한다.

 - 아래와 같이 구성할 수 있다.

1) 일반 method 내에서

 - connect to remote machine

 - Socket class로부터 DataInputStream, DataOutputStream 설정

 - send data

 - receive data

- 예시)

 

'Programming Practice > Java' 카테고리의 다른 글

특정 폴더 안에 있는 파일 다른 폴더로 복사하기  (0) 2015.03.28
파일 이동  (0) 2015.03.21
Properties 를 Text로 관리  (0) 2015.02.02
parameter로 객체 정보를 받아서 객체 생성  (0) 2015.01.17
FileFilter  (0) 2015.01.12