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

Similar documents
<4D F736F F F696E74202D20B3D7C6AEBFF6C5A9C7C1B7CEB1D7B7A1B9D65F FBCD2C4CF5FC3A4C6C35FBFA1C4DA2E BC8A3C8A

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

Microsoft PowerPoint - 03-TCP Programming.ppt

PowerPoint 프레젠테이션

16장

<4D F736F F F696E74202D20C1A63235C0E520B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D628B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

자바-11장N'1-502

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

13-Java Network Programming

Microsoft PowerPoint - 04-UDP Programming.ppt

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >

PowerPoint Presentation

Microsoft PowerPoint - Lecture_Note_5.ppt [Compatibility Mode]

Microsoft PowerPoint - [EEL2] Lab10.pptx

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

<4D F736F F F696E74202D20C1A63234C0E520C0D4C3E2B7C228B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

Microsoft PowerPoint PythonGUI-socket

2009년 상반기 사업계획

The Pocket Guide to TCP/IP Sockets: C Version

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

PowerPoint Presentation

Network Programming

TCP.IP.ppt

The Pocket Guide to TCP/IP Sockets: C Version

Network seminar.key

제1장 Unix란 무엇인가?

PowerPoint Presentation

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

rmi_박준용_final.PDF

The Pocket Guide to TCP/IP Sockets: C Version

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

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

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

JAVA PROGRAMMING 실습 09. 예외처리

Secure Programming Lecture1 : Introduction

Network Programming

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

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

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

The Pocket Guide to TCP/IP Sockets: C Version

6강.hwp

PowerPoint 프레젠테이션

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

12-file.key

Microsoft Word - src.doc

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

JAVA PROGRAMMING 실습 08.다형성

PowerPoint 프레젠테이션

bn2019_2

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

PowerPoint Presentation

전송계층프로토콜 TCP(Transmission Control Protocol) 전송계층에서동작하는연결지향형 (connectionoriented) 프로토콜 데이터의흐름을관리하고, 데이터가정확한지검증하며통신 쓰리웨이핸드셰이킹 (three-way handshaking) 을통

Subnet Address Internet Network G Network Network class B networ

Chapter 4 UDP 소켓 사용법

Microsoft PowerPoint PythonGUI-network

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

본 강의에 들어가기 전

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

쉽게 풀어쓴 C 프로그래밊

PowerPoint 프레젠테이션

PowerPoint Presentation

Cluster management software

Spring Boot/JDBC JdbcTemplate/CRUD 예제

PowerPoint Presentation

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint _TCP_IP

0. 들어가기 전

SMB_ICMP_UDP(huichang).PDF

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

Java ...

제20회_해킹방지워크샵_(이재석)

슬라이드 1

Design Issues

Windows 8에서 BioStar 1 설치하기

Microsoft PowerPoint 웹 연동 기술.pptx

PowerPoint 프레젠테이션

mytalk

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

PowerPoint Presentation

1217 WebTrafMon II

RHEV 2.2 인증서 만료 확인 및 갱신

4장.문장

PowerPoint 프레젠테이션

제11장 자바 입출력

Switching

PowerPoint Presentation

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

FileMaker ODBC 및 JDBC 가이드

Java

JAVA PROGRAMMING 실습 05. 객체의 활용

PowerPoint 프레젠테이션

제1장 자바 언어 소개

FileMaker 15 ODBC 및 JDBC 설명서

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

vi 사용법

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

쉽게

Transcription:

TCP/IP 소개 Application Layer (HTTP, FTP, SMTP, Telnet, ) Networking 514770 2018 년가을학기 11/12/2018 박경신 TCP/IP 프로토콜 Application Layer SMTP(Simple Mail Transfer Protocol), Telnet, FTP(File Transfer Protocol), HTTP(HyperText Transfer Protocol) 등 Transport Layer Transport Layer (TCP, UDP, ) Network Layer (IP, ) Data Link Layer (PPP, ARP, ) TCP(Transmission Control Protocol) 신뢰성있는데이터전송프로토콜 UDP(User Datagram Protocol) 비연결형서비스 ( 신뢰성없음 ) 데이터전송프로토콜 Network Layer IP(Internet Protocol) 패킷교환네트워크에서송신호스트와수신호스트가데이터를주고받는것을관장하는프로토콜 Data Link Layer OS, 디바이스드라이버, 네트워크인터페이스를제어하는계층 PPP(Point to Point Protocol), ARP(Address Resolution Protocol) IP 주소 IP 주소 네트워크상에서유일하게식별될수있는컴퓨터주소 숫자로구성된주소 4개의숫자가. 으로연결 예 ) 192.156.11.15 숫자로된주소는기억하기어려우므로 www.naver.com 과같은문자열로구성된도메인이름으로바꿔사용 DNS(Domain Name Server) 문자열로구성된도메인이름을숫자로구성된 IP 주소로자동변환 현재는 32 비트의 IP 버전 4(IPv4) 가사용되고있음 IP 주소고갈로인해 128 비트의 IP 버전 6(IPv6) 이점점사용되는추세 내컴퓨터의 IP 주소확인하기 내컴퓨터의윈도우에서명령창을열어 ipconfig 명령수행

포트 (Port #) 포트 (Port) 통신하는프로그램간에가상의연결단포트생성 IP 주소는네트워크상의컴퓨터또는시스템을식별하는주소 포트번호를이용하여통신할응용프로그램식별 모든응용프로그램은하나이상의포트생성가능 포트를이용하여상대방응용프로그램과데이터교환 잘알려진포트 (well-know ports) 시스템이사용하는포트번호 잘알려진응용프로그램에서사용하는포트번호 0 부터 1023 사이의포트번호 ex) 텔넷 23, HTTP 80, FTP 21 잘알려진포트번호는개발자가사용하지않는것이좋음 충돌가능성있음 포트를이용한통신 TCP/UDP 프로토콜은포트 (port) 를이용해서통신할응용프로그램을연결함 server TCP or UDP P o r t app app app app port port port port Data TCP Client Packet port# data TCP vs UDP TCP is a connection-oriented reliable stream transport protocol TCP Socket socket socket A B bind A TCP UDP is a connectionless unreliable datagram transport protocol B listen accept read write rendezvous request reply connect write read UDP Server Client

TCP Java Socket UDP Socket ServerSocket server = new ServerSocket(port); Socket socket = server.accept(); Socket client = new Socket(ip, port); Peer Processes Peer Processes Socket socket socket socket.getinputstream(); client.getoutputstream(); LCE LCE socket.getoutputstream(); client.getinputstream(); bind bind socket.close(); client.close(); PCE Sendto/Recvfrom PCE Server Client UDP Java Socket Socket server = new DatagramSocket(port); server.receive(); server.send(); Socket client = new DatagramSocket(ip, port); client.send(); client.receive(); Socket Socket 소켓은네트워크상에서수행되는두프로그램간의양방향통신링크의한쪽끝단을의미 소켓은특정포트번호와연결되어있음 TCP에서데이터를보낼응용프로그램을식별할수있음. 자바에서의데이타통신시소켓사용 소켓종류 서버소켓과클라이언트소켓 server.close(); Server client.close(); Client 웹브라우저 소켓 포트 4289 인터넷 포트 80 소켓 웹서버

Socket 클래스 Socket 클래스 클라이언트소켓에사용되는클래스 java.net 패키지에포함 주요생성자 생성자 Socket(InetAddress address, int port) Socket(String host, int port) 소켓을생성하여지정된 IP 주소와포트번호에연결한다. 소켓을생성하여지정된호스트와포트번호에연결한다. 호스트이름이 null인경우는루프백 (loopback) 주소로가정한다. Socket 클래스 메소드 void close() 소켓을닫는다. void connect(socketaddress 소켓을서버에연결 endpoint) InetAddress getinetaddress() 소켓이연결한서버의주소반환 InputStream getinputstream() 소켓에대한입력스트림반환 InetAddress getlocaladdress() 소켓이연결된로컬주소반환 int getlocalport() 소켓이연결된로컬포트번호반환 int getport() 소켓이연결한서버의포트번호반환 OutputStream getoutputstream() 소켓에대한출력스트림반환 boolean isbound() 소켓이로컬주소에연결되어있으면 true 반환 boolean isconnected() 소켓이서버에연결되어있으면 true 반환 boolean isclosed() 소켓이닫혀있으면 true 반환 void setsotimeout(int timeout) 데이터읽기타임아웃시간지정. 0이면타임아웃해제. 소켓생성, 서버접속, 입출력스트림생성 클라이언트소켓생성및서버에접속 Socket 객체의생성되면곧바로 128.12.1.1의주소로자동접속 네트워크입출력스트림생성 일반스트림을입출력하는방식과동일 서버로데이터전송 flush() 를호출하면스트림속에데이터를남기지않고모두전송 서버로부터데이터수신 네트워크접속종료 Socket clientsocket = new Socket("128.12.1.1", 5550); BufferedReader in = new BufferedReader( new InputStreamReader(clientSocket.getInputStream())); BufferedWriter out = new BufferedWriter( new OutputStreamWriter(clientSocket.getOutputStream())); out.write("hello"+"\n"); out.flush(); int x = in.read(); // 서버로부터한개의문자수신 String line = in.readline(); // 서버로부터한행의문자열수신 clientsocket.close(); ServerSocket 클래스 ServerSocket 클래스 서버소켓에사용되는클래스 java.net 패키지에포함 주요생성자생성자 ServerSocket(int port ) 소켓을생성하여지정된포트번호에연결한다. 주요메소드 메소드 Socket accept() 연결요청을기다리다연결요청이들어오면수락하고새 Socket 객체를반환 void close() 서버소켓을닫는다. InetAddress getinetaddress() 서버소켓에연결된로컬주소반환 int getlocalport() 서버소켓이연결요청을모니터링하는포트번호반환 boolean isbound() 서버소켓이로컬주소에연결되어있으면 true 반환 boolean isclosed() 서버소켓이닫혀있으면 true 반환 void setsotimeout(int timeout) accept() 에대한타임아웃시간지정. 0이면타임아웃이해제.

클라이언트와서버연결순서 클라이언트와서버연결 서버는서버소켓으로들어오는연결요청을기다림 서버 포트listen 클라이언트가서버에게연결요청 서버 포트listen 클라이언트포트연결요청 서버가연결요청수락하고새로운소켓을만들어클라이언트와연결생성 서버 포트listen 클라이언트포트연결 소켓생성, 클라이언트접속, 입출력스트림생성 서버소켓생성 ServerSocket serversocket = new ServerSocket(5550); 이미사용중인포트번호를지정하면오류가발생 클라이언트로부터접속기다림 Socket socket = serversocket.accept(); accept() 메소드는연결요청이오면새로운 Socket 객체반환 서버에서클라이언트와의데이터통신은새로만들어진 Socket 객체를통해서이루어짐 ServerSocket 클래스는 Socket 클래스와달리주어진연결에대해입출력스트림을만들어주는메소드가없음 네트워크입출력스트림생성 BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); BufferedWriter out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); accept() 메소드에서얻은 Socket 객체의 getinputstream() 과 getoutputstream() 메소드를이용하여데이터스트림생성 일반스트림을입출력하는방식과동일하게네트워크데이터입출력 클라이언트로데이터송수신 클라이언트로부터데이터수신 int x = in.read(); // 클라이언트로부터한개의문자수신 String line = in.readline(); // 클라이언트로부터한행의문자열수신 클라이언트로데이터전송 out.write("hi!, Client"+"\n"); out.flush(); flush() 를호출하면스트림속에데이터를남기지말고모두전송 네트워크접속종료 socket.close(); 서버응용프로그램종료 serversocket.close(); TCP/UDP 이용한 Server/Client 예제 간단한채팅프로그램예제 서버와클라이언트가 1:1로채팅하는간단한예제 서버와클라이언트간의메시지구분을위해서버는메시지앞에 서버 > 을접두어로붙여메시지를전송하며클라이언트는 클라이언트 > 를접두어로붙여메시지전송 서버와클라이언트가번갈아가면서메시지전송및수신 클라이언트가 bye를보내면프로그램종료 더이상클라이언트의접속을받지않고서버응용프로그램을종료하고자하는경우 ServerSocket 종료

URL 을이용한웹프로그래밍 웹브라우저주소창의 URL URL 이란? URL 은 Uniform Resource Locator 인터넷상의리소스에대한주소 URL 구조 프로토콜식별자 프로토콜 (Protocol) 식별자 인터넷상의자원을가져올때사용되는통신프로토콜이름 종류 HTTP, FTP, TELNET 대부분의브라우저들은 HTTP 외다른프로토콜도지원 자원이름 자원이름 자원이름은사용되는프로토콜에따라서그구성이달라짐 HTTP 의경우

자바의 URL 클래스 자바의 URL 클래스 URL 클래스 java.net 패키지에포함 웹상의자원을지정하는 URL을나타냄 생성자 URL(String spec) 문자열이지정하는자원에대한 URL 객체를생성 URL(String protocol, String host, int port, Stri 프로토콜식별자, 호스트주소, 포트번호, 파일이 ng file) 름이지정하는자원에대한 URL 객체생성프로토콜식별자, 호스트주소, 파일이름이지정 URL(String protocol, String host, String file) 하는자원에대한 URL 객체생성 URL 객체 context에대한상대경로가지정하는 URL(URL context, String spec) 자원에대한 URL 객체생성 메소드 Object getcontent() String getfile() String gethost() String getpath() int getport() int getlocalport() int getport() InputStream openstream() URLConnection openconnection() URL 의컨텐트를반환 URL 주소의파일이름반환 URL 주소의호스트이름반환 URL 주소의경로부분반환 URL 주소의포트번호반환 소켓이연결된로컬포트번호반환 소켓이연결한서버의포트번호반환 URL에대해연결을설정하고이연결로부터입력을받을수있는 InputStream 객체반환 URL 주소의원격객체에접속한뒤통신할수있는 URLConnection 객체리턴 URL 객체생성방법 절대경로로 URL 객체생성 URL homepage = new URL("http://news.hankooki.com"); 상대경로로 URL 객체생성 URL opinion = new URL(homePage, "opinion/editorial.htm"); opinion 이라는 URL 은결국다음주소의미 "http://news.hankooki.com/opinion/editorial.htm" 잘못된주소의 URL 을입력하면 MalformedURLException 예외발생 예제 : URL 파싱하기 URL 클래스를이용하여 URL 을구성하는프로토콜이름, 호스트주소, 포트번호등각부분을파싱해보자 import java.net.*; public class ParseURL { public static void main(string[] args) { URL opinion = null; URL homepage = null; try { homepage = new URL("http://news.hankooki.com:80"); // 절대경로로 URL 객체생성 opinion = new URL(homePage, opinion/editorial.htm"); // 상대경로로 URL 객체생성 catch (MalformedURLException e) { System.out.println(" 잘못된 URL 입니다."); System.out.println("protocol = " + opinion.getprotocol()); // 프로토콜출력 System.out.println("host = " + opinion.gethost()); // 호스트이름출력 System.out.println("port = " + opinion.getport()); // 포트번호출력 System.out.println("path = " + opinion.getpath()); // 경로부분출력 System.out.println("filename = " + opinion.getfile()); // 파일이름출력 protocol = http host = news.hankooki.com port = 80 path = /opinion/editorial.htm filename = /opinion/editorial.htm

URL 객체를이용하여상대편으로부터데이터읽기 URL 객체에서데이터읽기 URL 객체가가리키는주소에서데이터를가져올때는 openstream() 메소드로스트림생성 openstream() 이리턴하는 InputStream 객체를이용하여일반스트림입력을수행 예제 : URL 주소에서데이터읽기 http 프로토콜로 www.nate.com 사이트에접속한뒤 www.nate.com 에서보내주는웹페이지를받아보자. import java.net.*; import java.io.*; public class URLRead { public static void main(string[] args) { try { // URL 객체생성 URL aurl = new URL("http://www.nate.com"); // URL 객체에서입력스트림생성 BufferedReader in = new BufferedReader(new InputStreamReader( aurl.openstream())); String inputline; while ((inputline = in.readline())!= null) // 한행씩읽음 System.out.println(inputLine); in.close(); catch (IOException e) { System.out.println("URL 에서데이터를읽는중오류가발생했습니다."); URLConnection 클래스 URLConnection 클래스주요메소드 URLConnection 클래스 주어진원격지의주소 URL에네트워크접속후데이터를보내거나받을수있도록하는기능 URL 객체생성방법 URL.openConnection() 이용 URL aurl = new URL("http://www.naver.com"); URLConnection uc = aurl.openconnection(); // 원격지와연결한다. URLConnection 생성자이용 URL aurl = new URL("http://www.naver.com"); URLConnection uc = new URLConnection(aURL); uc.connect(); // 원격지와연결한다. 연결하기전에여러가지인자들과요청과관련된속성들을설정가능 메소드 abstract void connect() Object getcontent() String getcontentencoding() int getcontentlength() String getcontenttype() boolean getdoinput() boolean getdooutput() InputStream getinputstream() OutputStream getoutputstream() URL geturl() void setdoinput(boolean doinput) void setdooutput(boolean dooutput) URL 에의해참조되는외부리소스와통신연결설정 URL 연결에서컨텐트를가져옴 컨텐트인코딩필드를반환 컨텐트길이필드반환 컨텐트타입필드반환 doinput 필드가 true 로설정되면 URLConnection 객체로표현되는 URL 연결이입력을위해사용됨을의미. dooutput 필드가 true 로설정되면출력을위해사용됨을의미 URLConnection 객체의 doinput 필드값반환 URLConnection 객체의 dooutput 필드값반환 설정된연결에서데이터를읽을입력스트림반환 설정된연결로데이터를출력할출력스트림반환 URLConnection 객체의 URL 필드값반환 URLConnection 객체의 doinput 필드값설정 URLConnection 객체의 dooutput 필드값설정

URLConnection 객체를이용하여원격지데이터받기 URLConnection 객체에서데이터읽기 URLConnection 객체에서 getinputstream() 메소드를이용하여입력스트림을얻은후에스트림입력을수행 예제 : URLConnection 으로원격지에서데이터읽기 URLConnection 객체를이용하여 www.daum.net에연결하여데이터를읽고화면에출력하는프로그램을작성하라. import java.io.*; import java.net.*; public class URLConnectionReader { public static void main(string[] args) { try { // URL 객체생성 URL aurl = new URL("http://www.daum.net"); // URL 객체에서 URLConnection 객체생성 URLConnection uc = aurl.openconnection(); BufferedReader in = new BufferedReader(new InputStreamReader( uc.getinputstream())); // 입력스트림생성 String inputline; while ((inputline = in.readline())!= null) // 한행씩읽음 System.out.println(inputLine); in.close(); catch (IOException e) { System.out.println("URL에서데이터를읽는중오류가발생했습니다."); URLConnection 객체를이용하여원격지로데이터보내기 URLConnection 객체에서데이터쓰기 웹서버에데이터를요청하여읽어올때주로 HTTP GET 방법사용 웹서버에데이터를요청할때같이처리될데이터를보낼때 HTTP POST HTTP POST 를이용하면서버에폼 (form) 데이터나파일을업로드할수있음 요청과같이보내진데이터를서버가처리하여응답을다시클라이언트에보냄 URLConnection 객체는 HTTP POST 방식으로서버에데이터전송 HTTP POST 사례 성과이름을입력하는필드가폼 (form) 필드에데이터를입력한후 "go" 버튼을누르면웹서버로데이터를전송해야하는데이데이터를보내는방법이 HTTP POST 36

서버에데이터를보내기위한단계 자바프로그램이웹서버에데이터를보내기위해서 필요한단계 1. URL 생성 2. URL 객체에서 URLConnection 객체를얻어온다. 3. setdooutput() 메소드로 dooutput 필드를 true로설정 4. connect() 메소드로연결설정 5. 연결에서출력스트림을얻어온다. 6. 출력스트림에데이터를출력. 7. 출력스트림을닫는다. 예제 : URLConnection 을이용하여웹서버에데이터보내기 URLConnection 객체를이용하여웹서버에데이터를보내고웹서버로부터응답데이터를받아화면에출력하는응용프로그램을작성하라. import java.io.*; import java.net.*; public class URLConnectionWriter { public static void main(string[] args) { try { // POST가가능한사이트 URL 객체생성 URL aurl = new URL("http://www.snee.com/xml/crud/posttest.cgi"); URLConnection uc = aurl.openconnection(); // URLConnection 객체생성 uc.setdooutput(true); // 출력모드설정 OutputStreamWriter out = new OutputStreamWriter(uc.getOutputStream()); // 출력스트림생성 out.write("fname=kitae&lname=hwang"); // 서버에데이터보내기 out.close(); BufferedReader in = new BufferedReader( new InputStreamReader(uc.getInputStream())); // 입력스트림생성 String inputline; while ((inputline = in.readline())!= null) // 한행씩읽음 System.out.println(inputLine); in.close(); catch (IOException e) { System.out.println("URL에데이터를입출력중에오류가발생했습니다.");