Microsoft PowerPoint - 03-TCP Programming.ppt

Similar documents
Microsoft PowerPoint - Supplement-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

PowerPoint 프레젠테이션

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

Microsoft PowerPoint - Lecture_Note_5.ppt [Compatibility Mode]

12-file.key

rmi_박준용_final.PDF

Network Programming

<4D F736F F F696E74202D20C1A63234C0E520C0D4C3E2B7C228B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

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

PowerPoint Presentation

Cluster management software

JAVA PROGRAMMING 실습 09. 예외처리

PowerPoint Presentation

16장

Java

PowerPoint Presentation

PowerPoint Presentation

The Pocket Guide to TCP/IP Sockets: C Version

02 C h a p t e r Java

The Pocket Guide to TCP/IP Sockets: C Version

PowerPoint Presentation

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

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >

FileMaker ODBC and JDBC Guide

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

Network Programming

PowerPoint 프레젠테이션

PowerPoint Presentation

PowerPoint 프레젠테이션

4장.문장

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

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

PowerPoint 프레젠테이션

Java ...

2009년 상반기 사업계획

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

Design Issues

Microsoft PowerPoint - Java7.pptx

FileMaker ODBC and JDBC Guide

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밊

PowerPoint Presentation

The Pocket Guide to TCP/IP Sockets: C Version

PowerPoint Presentation

Chap12

슬라이드 1

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

Microsoft PowerPoint - RMI.ppt

untitled

FileMaker ODBC 및 JDBC 가이드

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

쉽게 풀어쓴 C 프로그래밍

The Pocket Guide to TCP/IP Sockets: C Version

비긴쿡-자바 00앞부속

교육자료

3ÆÄÆ®-11

제11장 자바 입출력

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

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

Microsoft PowerPoint - AUTOMATING BESPOKE ATTACKS.pptx

歯NetworkKawuiBawuiBo.PDF

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

제1장 Unix란 무엇인가?

Spring Boot

FileMaker 15 ODBC 및 JDBC 설명서

제1장 자바 언어 소개

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

PowerPoint Presentation

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

JMF2_심빈구.PDF

14-Servlet

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

bn2019_2

JMF3_심빈구.PDF

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

Spring Boot/JDBC JdbcTemplate/CRUD 예제

제11장 프로세스와 쓰레드

쉽게 풀어쓴 C 프로그래밍

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

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

PowerPoint Presentation

vi 사용법

PowerPoint Presentation

C++ Programming

예제 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

05-class.key

Cluster management software

슬라이드 1

JAVA PROGRAMMING 실습 08.다형성

Transcription:

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

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

소켓소개 : 주요클래스와메소드 ServerSocket 클래스 서버프로그램을만들때사용 ( 서버측에서사용 ) Socket 클래스 클라이언트프로그램생성시이용 ( 클라이언트측에서사용 ) 4 소켓소개 : 주요클래스와메소드 (cont.) ServerSocket 클래스 생성자 (Constructor) ServerSocket (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) 5 3

소켓소개 : 주요클래스와메소드 (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 get(): 소켓에연결된서버의포트번호를반환 int getsotimeout() boolean isconnected() void setsotimeout (int timeout) void shutdowninput(): 소켓의입력스트림을닫음 void shutdownoutput(): 소켓의출력스트림을닫음 6 소켓소개 : HTTP 프로토콜을이용한예제 프로그램개요 HTTP 프로토콜을사용하는웹클라이언트프로그램작성 웹서버와웹브라우저는 HTTP 프로토콜을이용하므로 웹클라이언트프로그램을작성하기위해서는 HTTP 프로토콜에맞게동작하도록프로그램을작성하여야함 작성하고자하는프로그램 웹서버의디폴트페이지 (.html) 를읽어오는프로그램 웹서버에HTTP의 GET 명령어를전달함으로써구현 7 4

소켓소개 : 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); 8 소켓소개 : HTTP 프로토콜을이용한예제 (cont.) 실행결과 9 5

소켓소개 : 에코프로그램 프로그램개요 클라이언트에서특정내용을서버에전달 서버는전달받은동일한내용을다시해당클라이언트에게전달 작성할프로그램 에코서버프로그램 EchoServer.java 에코클라이언트프로그램 EchoClient.java 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)); if (msg.equals("bye!")) { break; PrintWriter out = new PrintWriter (os, true); while (true) { String msg = in.readline(); System.out.println (msg); 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(); 11 6

소켓소개 : 에코프로그램 - 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("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(); ec.close(); catch (Exception e){ e.printstacktrace(); 12 실행결과 13 7

Ref., http://www.shinyoungbok.pe.kr/ 14 8