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

Similar documents
Microsoft PowerPoint - 03-TCP Programming.ppt

Microsoft PowerPoint - 04-UDP Programming.ppt

<4D F736F F F696E74202D20C1A63235C0E520B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D628B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

자바-11장N'1-502

<4D F736F F F696E74202D20B3D7C6AEBFF6C5A9C7C1B7CEB1D7B7A1B9D65F FBCD2C4CF5FC3A4C6C35FBFA1C4DA2E BC8A3C8A

13-Java Network Programming

Microsoft PowerPoint - [EEL2] Lab10.pptx

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

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

Microsoft PowerPoint - Lecture_Note_5.ppt [Compatibility Mode]

PowerPoint 프레젠테이션

rmi_박준용_final.PDF

12-file.key

PowerPoint Presentation

Network Programming

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

<4D F736F F F696E74202D20C1A63234C0E520C0D4C3E2B7C228B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

16장

The Pocket Guide to TCP/IP Sockets: C Version

Cluster management software

PowerPoint Presentation

PowerPoint Presentation

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

The Pocket Guide to TCP/IP Sockets: C Version

JAVA PROGRAMMING 실습 09. 예외처리

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >

PowerPoint Presentation

Java

02 C h a p t e r Java

PowerPoint Presentation

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

Network Programming

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

FileMaker ODBC and JDBC Guide

PowerPoint 프레젠테이션

PowerPoint Presentation

Design Issues

PowerPoint 프레젠테이션

4장.문장

2009년 상반기 사업계획

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

PowerPoint 프레젠테이션

FileMaker ODBC 및 JDBC 가이드

The Pocket Guide to TCP/IP Sockets: C Version

Java ...

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

Microsoft PowerPoint - Java7.pptx

FileMaker ODBC and JDBC Guide

PowerPoint 프레젠테이션

Chap12

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밊

Microsoft PowerPoint - RMI.ppt

PowerPoint Presentation

The Pocket Guide to TCP/IP Sockets: C Version

슬라이드 1

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

FileMaker 15 ODBC 및 JDBC 설명서

untitled

PowerPoint Presentation

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

쉽게 풀어쓴 C 프로그래밍

비긴쿡-자바 00앞부속

제1장 자바 언어 소개

歯NetworkKawuiBawuiBo.PDF

교육자료

PowerPoint 프레젠테이션

bn2019_2

14-Servlet

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

Microsoft PowerPoint - AUTOMATING BESPOKE ATTACKS.pptx

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

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

3ÆÄÆ®-11

제11장 자바 입출력

Spring Boot

제1장 Unix란 무엇인가?

신림프로그래머_클린코드.key

JMF2_심빈구.PDF

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

JMF3_심빈구.PDF

歯JavaExceptionHandling.PDF

C++ Programming

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

PowerPoint Presentation

Spring Boot/JDBC JdbcTemplate/CRUD 예제

쉽게 풀어쓴 C 프로그래밍

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

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

Semantic Consistency in Information Exchange

class Sale void makelineitem(productspecification* spec, int qty) SalesLineItem* sl = new SalesLineItem(spec, qty); ; 2. 아래의액티비티다이어그램을보고 Java 또는 C ++,

본 강의에 들어가기 전

PowerPoint Presentation

vi 사용법

PowerPoint Presentation

05-class.key

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A

제11장 프로세스와 쓰레드

Transcription:

- Socket Programming in Java - 목차 소켓소개 자바에서의 TCP 프로그램작성방법 주요클래스와메소드 HTTP 프로토콜을이용한예제 에코프로그램 Q/A 에코프로그램 - EchoServer 에코프로그램 - EchoClient TCP Programming 1

소켓소개 IP, Port, and Socket 포트 (Port): 전송계층에서통신을수행하는응용프로그램을찾기위한주소 소켓 (Socket): TCP/IP 네트워크에서양쪽응용프로그램의 TCP 연결을말함 전화의예 전화번호 : IP 주소 ; 포트번호 : 교환번호 소켓 : 전화가울리고원하는사람과통화가연결된것을의미 Host computer-i Host computer-ii 응용 Port InputStream 프로그램 Port Network 응용프로그램 Port Socket InputStream Port IP Address IP Address OutputStream 응용프로그램 OutputStream Socket Port Port 응용프로그램 TCP Programming 2 소켓소개 : 자바에서의 TCP 프로그램작성방법 자바네트워크프로그램작성패키지 java.net ServerSocket() accept() TCP Server TCP Client Socket() Connected 클라이언트와연결될때까지블록됨 I/O 스트림생성 I/O 스트림생성 write() 데이터 ( 요청 ) read() 클라이언트요청처리 read() 데이터 ( 응답 ) write() close() close() TCP Programming 3

소켓소개 : 주요클래스와메소드 ServerSocket 클래스 서버프로그램을만들때사용 ( 서버측에서사용 ) Socket 클래스 클라이언트프로그램생성시이용 ( 클라이언트측에서사용 ) TCP Programming 4 소켓소개 : 주요클래스와메소드 (cont.) ServerSocket 클래스 생성자 (Constructor) ServerSocket S (int port) ServerSocket (int port, int backlog) port: 서버소켓이사용할포트번호 포트번호는 2바이트로표현되므로 0~2 16-1 사이의값을지님 backlog: 클라이언트요청을기록할큐의크기 ( 동시연결요청시필요 ) 즉, 기록할요청의개수 backlog의사이즈보다큰연결요청이많으면크기외의클라이언트는연결되지않음 주요메소드 (pp. 44) Socket accept(): 클라이언트와의연결을기다리다연결시 Socket 객체반환 void bind(socketaddress endpoint) void close() InetAddress getinetaddress(): 서버소켓주소반환 int getsotimeout(): SO_TIMEOUT 값을반환 ; 0이면무한대를의미 boolean isclosed() void setsotimeout (int timeout): Unit: millisecond (ms.: One thousandth (10-3 ) of a second) TCP Programming 5

소켓소개 : 주요클래스와메소드 (cont.) Socket 클래스 생성자 Socket (String host, int port): 서버의주소 ( 문자열주소 ) 와포트번호 Socket (InetAddress address, int port): address는 IP 주소주요메소드 void bind (SocketAddress bindpoint) void close() void connect (SocketAddress endpoint) void connect (SocketAddress endpoint, int timeout) InetAddress getinetaddress(): 소켓이연결된곳의주소반환 InputStream getinputstream() boolean getkeepalive(): SO_KEEPALIVE의활성화여부를판단 OutputStream getoutputstream() int getport(): 소켓에연결된서버의포트번호를반환 int getsotimeout() boolean isconnected() void setsotimeout (int timeout) void shutdowninput(): 소켓의입력스트림을닫음 void shutdownoutput(): 소켓의출력스트림을닫음 TCP Programming 6 소켓소개 : HTTP 프로토콜을이용한예제 프로그램개요 HTTP 프로토콜을사용하는웹클라이언트프로그램작성 웹서버와웹브라우저는 HTTP 프로토콜을이용하므로 웹클라이언트프로그램을작성하기위해서는 HTTP 프로토콜에맞게동작하도록프로그램을작성하여야함 작성하고자하는프로그램 웹서버의디폴트페이지 (.html) 를읽어오는프로그램 웹서버에HTTP의 GET 명령어를전달함으로써구현 TCP Programming 7

소켓소개 : HTTP 프로토콜을이용한예제 (cont.) import java.io.*; import java.net.*; public class WebClient { public static void main (String[] args){ if (args.length < 1){ System.out.println("Usage: java WebClient <Web address> \n"); return; try { char data[] = new char[1024]; int len; Socket s = new Socket (args[0], 80); PrintWriter out = new PrintWriter (s.getoutputstream(), true); InputStreamReader in = new InputStreamReader (s.getinputstream()); out.println("get / HTTP/1.0"); out.println("\n"); while ( (len = in.read(data))!= -1) System.out.println(new String (data, 0, len)); catch (Exception e) { System.out.println(e); TCP Programming 8 소켓소개 : HTTP 프로토콜을이용한예제 (cont.) 실행결과 TCP Programming 9

소켓소개 : 에코프로그램 프로그램개요 클라이언트에서특정내용을서버에전달 서버는전달받은동일한내용을다시해당클라이언트에게전달 작성할프로그램 에코서버프로그램 EchoServer.java 에코클라이언트프로그램 EchoClient.java TCP Programming 10 소켓소개 : 에코프로그램 - EchoServer import java.io.*; import java.net.*; public class EchoServer{ private ServerSocket server; public EchoServer (int port) throws IOException { server = new ServerSocket (port); public void service() throws IOException { System.out.println("EchoServer is ready."); Socket client = server.accept(); InputStream is =client.getinputstream(); OutputStream os = client.getoutputstream(); BufferedReader in = new BufferedReader(new InputStreamReader(is)); PrintWriter out = new PrintWriter (os, true); while (true) { String msg = in.readline(); System.out.println (msg); if (msg.equals("bye!")) { break; out.println(">>" + msg); public void close() throws IOException { server.close(); public static void main (String args[]){ try{ EchoServer es = new EchoServer (1289); es.service(); es.close(); catch (Exception e) { e.printstacktrace(); TCP Programming 11

소켓소개 : 에코프로그램 - EchoClient import java.io.*; import java.net.*; public class EchoClient{ private Socket socket; public EchoClient(String host, int port) throws Exception{ socket = new Socket (host, port); public void echo() throws IOException { OutputStream os = socket.getoutputstream(); InputStream is = socket.getinputstream(); BufferedReader in = new BufferedReader(new InputStreamReader(is)); PrintWriter out = new PrintWriter(os, true); BufferedReader con = new BufferedReader(new InputStreamReader(System.in)); while (true){ String msg = con.readline(); out.println(msg); if (msg.equals( equals("bye!")) break; System.out.println(in.readLine());; public void close() throws IOException { socket.close(); public static void main(string args[]){ try{ EchoClient ec; System.out.println("Enter a message \n"); if (args.length > 0) ec = new EchoClient (args[0], 1289); else ec = new EchoClient ("localhost", 1289); ec.echo(); echo(); ec.close(); catch (Exception e){ e.printstacktrace(); TCP Programming 12 실행결과 TCP Programming 13

Ref., http://www.shinyoungbok.pe.kr/ TCP Programming 14