학습목표 네트워크개요 TCP PORT URL/InetAddress Socket/TCP 을이용한네트워크 2

Similar documents
Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

Microsoft PowerPoint - 03-TCP Programming.ppt

<4D F736F F F696E74202D20C1A63235C0E520B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D628B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - 04-UDP Programming.ppt

자바-11장N'1-502

<4D F736F F F696E74202D20B3D7C6AEBFF6C5A9C7C1B7CEB1D7B7A1B9D65F FBCD2C4CF5FC3A4C6C35FBFA1C4DA2E BC8A3C8A

PowerPoint Presentation

13-Java Network Programming

(Microsoft PowerPoint - AUTCHEYREGRG.ppt [\310\243\310\257 \270\360\265\345])

Microsoft PowerPoint - java2-lecture7.ppt [호환 모드]

PowerPoint 프레젠테이션

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >

Microsoft PowerPoint - [EEL2] Lab10.pptx

class InetAddress3{ public static void main(string[] args) throws Exception{ String url = null ; Scanner reader = new Scanner(System.in); System.out.p

16장

The Pocket Guide to TCP/IP Sockets: C Version

2009년 상반기 사업계획

Network Programming

Microsoft PowerPoint - Lecture_Note_5.ppt [Compatibility Mode]

The Pocket Guide to TCP/IP Sockets: C Version

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345])

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밊

<4D F736F F F696E74202D20C1A63234C0E520C0D4C3E2B7C228B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

The Pocket Guide to TCP/IP Sockets: C Version

Microsoft PowerPoint PythonGUI-socket

목차 INDEX JSON? - JSON 개요 - JSONObject - JSONArray 서울시공공데이터 API 살펴보기 - 요청인자살펴보기 - Result Code - 출력값 HttpClient - HttpHelper 클래스작성 - JSONParser 클래스작성 공공

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

PowerPoint Presentation

PowerPoint 프레젠테이션

제1장 Unix란 무엇인가?

PowerPoint Presentation

rmi_박준용_final.PDF

The Pocket Guide to TCP/IP Sockets: C Version

JAVA PROGRAMMING 실습 09. 예외처리

Network Programming

PowerPoint 프레젠테이션

Microsoft PowerPoint - Supplement-02-Socket Overview.ppt [호환 모드]

제1장 자바 언어 소개

vi 사용법

PowerPoint Presentation

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter

mytalk

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

슬라이드 1

SMB_ICMP_UDP(huichang).PDF

제11장 프로세스와 쓰레드

PowerPoint Presentation

Design Issues

gnu-lee-oop-kor-lec06-3-chap7

歯NetworkKawuiBawuiBo.PDF

(Microsoft PowerPoint - Chapter17 RMI.ppt [\310\243\310\257 \270\360\265\345])

Microsoft PowerPoint - Java7.pptx

Secure Programming Lecture1 : Introduction

게시판 스팸 실시간 차단 시스템

2장 변수와 프로시저 작성하기

PowerPoint Presentation

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

Microsoft Word - src.doc

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

PowerPoint Presentation

슬라이드 1

Windows 8에서 BioStar 1 설치하기

본 강의에 들어가기 전

JAVA PROGRAMMING 실습 05. 객체의 활용

FileMaker ODBC 및 JDBC 가이드

혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 <html> 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 <html> 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가

0. 들어가기 전

[ 네트워크 1] 3 주차 1 차시. IPv4 주소클래스 3 주차 1 차시 IPv4 주소클래스 학습목표 1. IP 헤더필드의구성을파악하고요약하여설명할수있다. 2. Subnet ID 및 Subnet Mask 를설명할수있고, 각클래스의사용가능한호스트수와사설 IP 주소및네트

USB USB DV25 DV25 REC SRN-475S REC SRN-475S LAN POWER LAN POWER Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl C

PowerPoint Presentation

歯JavaExceptionHandling.PDF

Cluster management software

bn2019_2

서비스) 와서버( 관리대상서버) 간에자격증명을사용하여서로의 ID 를확인하고서로주고받는데이터를검사하고암호화하는프로세스 이다. 높은인증수준은일반적으로성능의저하를가져올수있지만높은 수준의보안과데이터무결성을제공한다. 기본값 - 관리대상서버에설정되어있는 DCOM 인증수준기본 값을

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

12-file.key

PowerPoint 프레젠테이션

Sena Device Server Serial/IP TM Version

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (

Java

FileMaker 15 ODBC 및 JDBC 설명서

운영체제실습_명령어

JMF3_심빈구.PDF

JSP 의내장객체 response 객체 - response 객체는 JSP 페이지의실행결과를웹프라우저로돌려줄때사용되는객체이다. - 이객체는주로켄텐츠타입이나문자셋등의데이터의부가정보 ( 헤더정보 ) 나쿠키 ( 다음에설명 ) 등을지정할수있다. - 이객체를사용해서출력의방향을다른

제11장 자바 입출력

2) 활동하기 활동개요 활동과정 [ 예제 10-1]main.xml 1 <LinearLayout xmlns:android=" 2 xmlns:tools="

[Brochure] KOR_TunA

PowerPoint 프레젠테이션

JMF2_심빈구.PDF

Microsoft PowerPoint - RMI.ppt

Microsoft PowerPoint - 13 ¼ÒÄÏÀ» ÀÌ¿ëÇÑ Åë½Å 2.ppt

IP 심화 라우팅프로토콜적용시 라우팅테이블에서 이니셜이있는네트워크를설정하는것 : onnected 직접연결된네트워크를의미한다. 그러므로라우팅은 나는이런네트워크와연결되어있다. 를직접연결된라우터들에게알려주는것 1>en 1#conf t 1(config)#router rip 1

JAVA PROGRAMMING 실습 08.다형성

Microsoft Word - release note-VRRP_Korean.doc

<4D F736F F D204A D61696C20C6D0C5B0C1F6B8A620C0CCBFEBC7D120B8DEC0CFC0C720C0FCBCDBB0FA20BCF6BDC52E646F63>

JAVA PROGRAMMING 실습 02. 표준 입출력

Transcription:

Chapter 12 네트워크프로그래밍 New Java Programming with a Workbook

학습목표 네트워크개요 TCP PORT URL/InetAddress Socket/TCP 을이용한네트워크 2

Network 개요 네트워크 데이터전송프로토콜을가지고통신하는연결된장치들을총칭 네트워크망 3

TCP TCP (Transmission Control Protocol) 신뢰성있는연결지향성스트림전송제어프로토콜 시작과끝사이에경로를설정한후데이터를전송한다. 전송되는데이터들의도착여부보장 Make a telephone call. 4

Ports 인터넷을통하여또는네트워크상의다른컴퓨터에위치하고있는특정프로그램에데이터를전송할때 TCP / UDP 프로토콜은 port 번호를사용 인터넷을통하여전송되는데이터는목적지의다음과같은정보를수반한다. IP 주소 : 컴퓨터식별자, 32 비트 port 번호 : 프로그램식별자, 16 비트 0 to 65,535. 0-1023 사용불가 5

자바네트워크프로그램 java.net 패키지사용 스트림 TCP 프로토콜 URL, URLConnection, Socket, ServerSocket 데이터그램 UDP 프로토콜 DatagramPacket, DatagramSocket, MulticastSocket 6

URL(Uniform Resource Locator) 웹상에서자원을가리키는표준방식 HTTP 프로토콜은인터넷상의데이터를지정하기위해 URL 을사용 구성 통신프로토콜, 사용자정보, 호스트이름, 포트번호, 경로및파일이름, 질의문자열및문서의섹션번호참조 http://www.microsoft.com 7

URL 클래스 웹의 URL 에관한정보를제공 URL 클래스를사용하여파일명, 호스트명, 포트번호, 프로토콜명등을알아낼수있다. 필드메소드생성자 protected String protocol public String getprotocol() public URL(String url )throws MalformedURLExceptio nurl myurl = new URL("http://example.com/"); protected String host public String gethost() public URL(String protocol, String host, String file) throws MalformedURLException protected int port public int getport() public URL(String protocol, String host, int port, String file) throws MalformedURLException URL gamelan = new URL("http", "example.com", 80, "pages/page1.html"); protected String file public String getfile() public URL(URL u, String s) throws MalformedURLException URL myurl = new URL("http://example.com/pages/"); URL page1url = new URL(myURL, "page1.html"); URL page2url = new URL(myURL, "page2.html"); 8

실습 : 웹자원 URL 분석 소스코드 URL aurl = new URL("http://example.com:80/docs/books/tutorial" + "/index.html?name=networking#downloading"); System.out.println("protocol = " + aurl.getprotocol()); System.out.println("authority = " + aurl.getauthority()); System.out.println("host = " + aurl.gethost()); System.out.println("port = " + aurl.getport()); System.out.println("path = " + aurl.getpath()); System.out.println("query = " + aurl.getquery()); System.out.println("filename = " + aurl.getfile()); System.out.println("ref = " + aurl.getref()); 소프트웨어개발전공 9

InetAddress 클래스 호스트 ( 인터넷에연결된컴퓨터 ) 이름및 IP 주소를반환 생성자가없다 Socket 등과같이네트워크에서데이터를송수신하는클래스에서특정호스트를지정하는데사용 필드 protected String hostname // 호스트이름을저장 protected int address //I 호스트의 IP 주소저장 지정한호스트에대한 InetAddress 객체를반환하는정적메소드 InetAddress InetAddress.getByName(String hostname) throws UnknownHostException InetAddress[] InetAddress.getAllByName(String hostname) throws UnknownHostException InetAddress [] InetAddress.getLocalHost() throws UnknownHostName 10

실습 : 명령어라인으로부터입력된원격 / 로컬호스트이름에해당하는 IP 주소얻기 11

Socket socket 은 port 번호에 binding 함으로써 TCP layer 에서는통신할목적지를식별할수있다 모든 TCP 네트워크연결을양끝에의해나타낸다 양방향의데이터교환을위해스트림개설 호스트에의해스트림기반의통신상태를구축 호스트와서버는각자소켓을통하여데이터를교환할수있다 소프트웨어개발전공 12

Socket 클래스 소켓을생성한후생성된소켓을통하여입출력스트림을생성하는메서드들을제공 java.net.socket 메소드 public Socket(String host, int port) throws UnknownHostException, IOException public Socket(InetAddress address, int port) throws IOException public InputStream getinputstream() throws IOException public OutputStream getoutputstream() throws IOException public void close() throws IOException 소프트웨어개발전공 13

ServerSocket 클래스 서버가클라이언트로부터네트워크를통한연결을받아들일수있게함 java.net.serversocket 메소드 public ServerSocket(int port) throws IOException public Socket accept() throws IOException public void close() throws IOException public void setsotimeout(int timeout) throws SocketException public int getsotimeout() throws IOException public void setreuseaddress(boolean on) throws SocketException 소프트웨어개발전공 14

TCP 소켓프로그래밍알고리즘 서버측에서 ServerSocket 클래스객체생성후클라이언트의요청이올때까지대기 (accept()) 클라이언트측에서서버의주소와포트번호를인수로 Socket 객체를생성한후서버에통신요청 서버는클라이언트의요청이발생되면 Socket 객체를생성 서버와클라이언트는입출력을위한스트림생성한후데이터를주고받음 (write/read) 통신이끝나면서버와클라이언트는각각생성한소켓을닫음 (close()) 소프트웨어개발전공 15

TCP/IP 를이용한소켓기반네트워크프로그래밍 TCP Client 상태 TCP Server Step1: Socket(InetAddress, port) // 클라이언트통신소켓객체생성 Step2: Socket 의 getinputstream()/getoutputstream() Connectè Step1: ServerSocket(port 번호, 최대클라이언트수 ) // 서버객체생성 Step2:accept() Step3: write() Requestè Step4: read() //request처리: Step4:read() çresponse Step5: write() // 클라이언트접속을무한정기다린다 (block) // 클라이언트가접속하면클라이언트용통신 Socket 객체반환 Step3: Socket 의 getinputstream()/getoutputstream() // 접속한클라이언트와통신할수있게입출력스트림객체생성 Step5:Socket의 close() disconnect Step6:Socket의 close() // 통신이완료될때서버는스트림객체및소켓객체접속을종료 16

실습 : 서버소켓객체생성 소스코드 ServerSocket ss; int port; port=integer.parseint(args[0]); try { ss=new ServerSocket(port);// 포트에바인드된서버소켓객체생성 ss.close();// 서버소켓닫기 } catch (IOException e) { e.printstacktrace(); } 17

실습 : 서버구동 소스코드 ServerSocket ss=null; Socket s=null; int port=3000; try { ss=new ServerSocket(port);// 포트에바인드된서버소켓생성 System.out.println(ss.getInetAddress().getHostAddress()+" 호스트및 "+ss.getlocalport()+" 포트에바인드된서버소켓생성 "); } catch (IOException e) {} while(true){ System.out.println(" 클라이언트접속요청을기다리는중..."); try { s=ss.accept(); System.out.println(s.getInetAddress().getHostAddress()+" 호스트및 "+s.getport()+" 포트의클라이언트로부터접속요청을수락 "); s.close(); } catch (IOException e) {} } 18

실습 : 날짜 / 시간서버 / 클라이언트네트워크프로그램 Server program ServerSocket ss=null; Socket socket=null; BufferedWriter bw=null; int port=integer.parseint(args[0]); try { ss=new ServerSocket(port); while(true){ socket=ss.accept(); OutputStream os=socket.getoutputstream(); bw=new BufferedWriter(new OutputStreamWriter(os)); JOptionPane.showMessageDialog(null, "Conneting to daytimeserver..."); // 접속을요청한클라이언트에현재날짜를전송 String date=new Date().toString(); bw.write(date); bw.flush(); bw.close(); } } catch (IOException e) {} } Client program Socket soc; InputStream is; BufferedReader br; String host=args[0]; try { InetAddress ip=inetaddress.getbyname(host); soc=new Socket(ip, 9999 ); is=soc.getinputstream(); br=new BufferedReader(new InputStreamReader(is)); System.out.println(br.readLine()); br.close(); soc.close(); } catch (UnknownHostException uhe) { } catch (IOException e) { } 19

실행결과 20

실습과제 : 채팅프로그램 채팅알고리즘 소프트웨어개발전공 21