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 |