Java의 정석 제 15 장 네트워킹(Networking) Java 정석 2010. 1. 20 남궁성 강의 Chapter 15. 네트워킹(Networking) http://www.javachobo.com Java의 정석 제 15 장 네트워킹(Networking) 안녕하십니까? 자바의 정석의 저자 남궁성입니다. 2010. 1. 20 남궁성 강의 castello@naver.com
Java 1. 네트워킹(Networking) 1.1 클라이언트/서버(client/server) 의 정석 Chapter 15. 네트워킹(Networking) http://www.javachobo.com 1. 네트워킹(Networking) 1.1 클라이언트/서버(client/server) 1.2 IP주소(IP address) 1.3 InetAddress 1.4 URL(Uniform Resource Location) 1.5 URLConnection 2. 소켓 프로그래밍 2.1 TCP와 UDP 세부목차인데요. 이 강의는 이와 같은 순서로 진행될 것입니다. 2.2 TCP소켓 프로그래밍 2.3 UDP소켓 프로그래밍
1. 네트워킹(Networking) Java 정석 의 Chapter 15. 네트워킹(Networking) http://www.javachobo.com 1. 네트워킹(Networking)
1.1 클라이언트/서버(client/server) Java 의 정석 Chapter 15. 네트워킹(Networking) http://www.javachobo.com 1.1 클라이언트/서버(client/server) - 컴퓨터간의 관계를 역할(role)로 구분하는 개념 - 서비스를 제공하는 쪽이 서버, 제공받는 쪽이 클라이언트가 된다. - 제공하는 서비스의 종류에 따라 메일서버(email server), 파일서버(file server), 웹서버(web server) 등이 있다. - 전용서버를 두는 것을 ‘서버기반 모델’, 전용서버없이 각 클라이언트가 서버역할까지 동시에 수행하는 것을 ‘P2P 모델’이라고 한다. 4 4
Java 1.2 IP주소(IP address) 정석 - 컴퓨터(host, 호스트)를 구별하는데 사용되는 고유한 주소값 의 정석 Chapter 15. 네트워킹(Networking) http://www.javachobo.com 1.2 IP주소(IP address) - 컴퓨터(host, 호스트)를 구별하는데 사용되는 고유한 주소값 - 4 byte의 정수로 ‘a.b.c.d’와 같은 형식으로 표현.(a,b,c,d는 0~255의 정수) - IP주소는 네트워크주소와 호스트주소로 구성되어 있다. - 네트워크주소가 같은 두 호스트는 같은 네트워크에 존재한다. - IP주소와 서브넷마스크를 ‘&’연산하면 네트워크주소를 얻는다. 5 5
Java 1.3 InetAddress 정석 - IP주소를 다루기 위한 클래스 의 Chapter 15. 네트워킹(Networking) http://www.javachobo.com 1.3 InetAddress - IP주소를 다루기 위한 클래스 6 6
1.4 URL(Uniform Resource Location) Java 의 정석 Chapter 15. 네트워킹(Networking) http://www.javachobo.com 1.4 URL(Uniform Resource Location) - 인터넷에 존재하는 서버들의 자원에 접근할 수 있는 주소. http://www.javachobo.com:80/sample/hello.html?referer=javachobo#index1 7 7
Java 1.5 URLConnection(1/4) 정석 - 어플리케이션과 URL간의 통신연결을 위한 추상클래스 의 Chapter 15. 네트워킹(Networking) http://www.javachobo.com 1.5 URLConnection(1/4) - 어플리케이션과 URL간의 통신연결을 위한 추상클래스 8 8
Java 1.5 URLConnection(2/4) 정석 의 Chapter 15. 네트워킹(Networking) 9 9 http://www.javachobo.com 1.5 URLConnection(2/4) 9 9
Java 1.5 URLConnection(3/4) 정석 의 Chapter 15. 네트워킹(Networking) 10 10 http://www.javachobo.com 1.5 URLConnection(3/4) 10 10
Java 1.5 URLConnection(4/4) - 예제 정석 의 Chapter 15. 네트워킹(Networking) 11 http://www.javachobo.com 1.5 URLConnection(4/4) - 예제 11 11
2. 소켓 프로그래밍 Java 정석 의 Chapter 15. 네트워킹(Networking) 12 http://www.javachobo.com 2. 소켓 프로그래밍 12
Java 2.1 TCP와 UDP 정석 ▶ 소켓 프로그래밍이란? - 소켓을 이용한 통신 프로그래밍을 뜻한다. 의 정석 Chapter 15. 네트워킹(Networking) http://www.javachobo.com 2.1 TCP와 UDP ▶ 소켓 프로그래밍이란? - 소켓을 이용한 통신 프로그래밍을 뜻한다. - 소켓(socket)이란, 프로세스간의 통신에 사용되는 양쪽 끝단(end point) - 전화할 때 양쪽에 전화기가 필요한 것처럼, 프로세스간의 통신에서도 양쪽에 소켓이 필요하다. ▶ TCP와 UDP - TCP/IP프로토콜에 포함된 프로토콜. OSI 7계층의 전송계층에 해당 13 13
Java 2.2 TCP소켓 프로그래밍 정석 - 클라이언트와 서버간의 1:1 소켓 통신. Chapter 15. 네트워킹(Networking) http://www.javachobo.com 2.2 TCP소켓 프로그래밍 - 클라이언트와 서버간의 1:1 소켓 통신. - 서버가 먼저 실행되어 클라이언트의 연결요청을 기다리고 있어야 한다. 1. 서버는 서버소켓을 사용해서 서버의 특정포트에서 클라이언트의 연결요청을 처리할 준비를 한다. 2. 클라이언트는 접속할 서버의 IP주소와 포트정보로 소켓을 생성해서 서버에 연결을 요청한다. 3. 서버소켓은 클라이언트의 연결요청을 받으면 서버에 새로운 소켓을 생성해서 클라이언트의 소켓과 연결되도록 한다. 4. 이제 클라이언트의 소켓과 새로 생성된 서버의 소켓은 서버소켓과 관계없이 1:1통신을 한다. 14 14
Java 2.2 TCP소켓 프로그래밍 - 예제 정석 의 Chapter 15. 네트워킹(Networking) http://www.javachobo.com 2.2 TCP소켓 프로그래밍 - 예제 1. 서버프로그램을 실행한다. > java.exe TcpIpServer 2. 서버소켓을 생성한다. serverSocket = new ServerSocket(7777); // TcpIpServer.java 3. 서버소켓이 클라이언트 프로그램의 연결요청을 처리할 수 있도록 대기상태로 만든다. 클라이언트 프로그램의 연결요청이 오면 새로운 소켓을 생성해서 클라이언트 프로그램의 소켓과 연결한다. Socket socket = serverSocket.accept(); // TcpIpServer.java 4. 클라이언트 프로그램(TcpIpClient.java)에서 소켓을 생성하여 서버소켓에 연결을 요청한다. Socket socket = new Socket(“192.168.10.100”,7777); // TcpIpClient.java 5. 서버소켓은 클라이언트 프로그램의 연결요청을 받아 새로운 소켓을 생성하여 클라이언트의 소켓과 연결한다. Socket socket = serverSocket.accept(); // TcpIpServer.java 6. 새로 생성된 서버의 소켓(서버소켓 아님)은 클라이언트의 소켓과 통신한다. 15 15
Java 2.3 UDP소켓 프로그래밍 정석 - TCP소켓 프로그래밍에서는 Socket과 ServerSocket을 사용하지만, 의 정석 Chapter 15. 네트워킹(Networking) http://www.javachobo.com 2.3 UDP소켓 프로그래밍 - TCP소켓 프로그래밍에서는 Socket과 ServerSocket을 사용하지만, UDP소켓 프로그래밍에서는 DatagramSocket과 DatagramPacket을 사용. - UDP는 연결지향적이지 않으므로 연결요청을 받아줄 서버소켓이 필요없다. - DatagramSocket간에 데이터(DatagramPacket)를 주고 받는다. 16 16
감사합니다. http://www.javachobo.com Java 정석 의 정석 Chapter 15. 네트워킹(Networking) http://www.javachobo.com 감사합니다. 더 많은 동영상강좌를 아래의 사이트에서 구하실 수 있습니다. http://www.javachobo.com 이것으로 제 15 장 네트워킹에 대한 강의를 모두 마치겠습니다. 감사합니다. 이 동영상강좌는 비상업적 용도일 경우에 한해서 저자의 허가없이 배포하실 수 있습니다. 그러나 일부 무단전제 및 변경은 금지합니다. 관련문의 : 남궁성 castello@naver.com