IP 주소 : 네트워크에 연결된 컴퓨터들이 부여받은 주소 [IPv4 주소가 꽉차서 이제 IPv6로 넘어가는 추세]
네트워크 프로그래밍 과정
1. 연결 Socket = new Socket("IP주소" :String , portNo : int);
ㄴ1.1 필요하면 필터를 추가한다.
< 1byte 통신 전용 >
-- 파일을 읽어서 소켓으로 출력하는 패턴
FileInputStream fis = new FileInputStream(new File(file));이라던지
OutputStream os = socket.getOutputStream();
-- 소켓으로 받아 읽은 후, 파일에다 출력하는 패턴
FileOutputStream fos = new FileOutputStream(new File(file));이라던지
InputStream is = socket.getInputStream();
----------------------------------------------------------------------------
< 2byte 통신 전용 >
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
PrintWriter pw = new PrintWriter(socket.getOutputStream());
2. I/O
(1) 키보드 입력하여 연결된 곳으로 출력
while (!(str = br.readLine()).isEmpty()) {
pw.println(str);
pw.flush();
}
(2) 입력 받아서 콘솔창에 출력
String str;
while(!(str=br.readLine()).isEmpty()){
System.out.println(str);
}
(3) 파일 쓰기
byte buf[] = new byte[10000];
int data = 0;
while ((data = is.read(buf)) != -1) {
fos.write(buf, 0, data);
}
3. 닫기 (3.1 I/O닫기 , 3.2 Socket닫기
if (fos != null)
fos.close();
if (is != null)
is.close();
if (socket != null)
socket.close();
다시 정리하면
※ 서버(Server)
1) 서버소켓(Server Socket) 생성 = new ServerSocket(portNumber);
2) 클라이언트 연결 기다린다. I/O blocking socket = serverSocket.accept();
3) 소켓(Socket)을 이용하여 I/O작업을 한다.
- Input/Output Stream 조회
- Filter Stream 추가
- 입력||출력 작업
4) 연결닫기 I/O close, Socket close
※ 클라리언트(Client) 단
1) Socket 생성 <- ip, port번호 (서버와 달리 소켓 바로 생성) = new Socket("IP주소",portNo);
2) Socket을 이용해 I/O작업
- Input/Output Stream 조회
- Filter Stream 추가
- 입력||출력 작업
3) 연결 끊기 I/O close, Socket close
'JAVA > Syntax' 카테고리의 다른 글
NetworkProgramming 실습 - FileUpLoad (0) | 2015.02.23 |
---|---|
I/O 입출력 클래스 살펴보기 (0) | 2015.02.12 |
예외처리 (Throwable) : Unchecked Exception과 Checked Exception (0) | 2015.02.10 |
[java.util] Collection과 Map을 이용한 정렬하기(Sort) (0) | 2015.02.09 |
제네릭스(Generics) (0) | 2015.02.09 |