13.
This presentation is the property of its rightful owner.
Sponsored Links
1 / 19

13. 네트워크 프로그래밍 PowerPoint PPT Presentation


  • 146 Views
  • Uploaded on
  • Presentation posted in: General

13. 네트워크 프로그래밍. 최종명 [email protected] 13.1 TCP/IP 이해. 프로토콜 통신을 수행하기 위한 약속 데이터 포맷 명령어 인터넷의 역사 ARPAnet TCP/IP NSFnet. 13.1 TCP/IP 이해. LAN(Local Area Network). 13.1 TCP/IP 이해. 이더넷 주소 네트워크 카드 주소 이더넷 주소 확인하는 명령어 ipconfig /all. 13.1 TCP/IP 이해. IP 주소

Download Presentation

13. 네트워크 프로그래밍

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


13

13. 네트워크 프로그래밍

최종명

[email protected]


13 1 tcp ip

13.1 TCP/IP 이해

  • 프로토콜

    • 통신을 수행하기 위한 약속

      • 데이터 포맷

      • 명령어

  • 인터넷의 역사

    • ARPAnet

    • TCP/IP

    • NSFnet


13 1 tcp ip1

13.1 TCP/IP 이해

  • LAN(Local Area Network)


13 1 tcp ip2

13.1 TCP/IP 이해

  • 이더넷 주소

    • 네트워크 카드 주소

    • 이더넷 주소 확인하는 명령어

      ipconfig /all


13 1 tcp ip3

13.1 TCP/IP 이해

  • IP 주소

    • 4개의 점으로 구성된 논리적인 컴퓨터 주소

    • 예: 218.237.236.192

  • 컴퓨터 이름

    • IP 주소를 사람이 기억하기 쉬운 이름으로 표현한 것

  • DNS (Domain Name System)

    • 컴퓨터 이름을 IP 주소로 변환해주는 서버

    • DNS가 작동되는 방법을 알아보는 명령어

      nslookup java.sun.com


13 1 tcp ip4

13.1 TCP/IP 이해

  • 네트워크 구성

  • 브로드캐스트

    • 같은 네트워크에 소속된 모든 컴퓨터에 메시지를 전달하는 것


13 1 tcp ip5

13.1 TCP/IP 이해

  • ARP(Address Resolution Protocol)

    • IP 주소를 이더넷 주소로 변환해주는 것

    • arp –a 명령어

  • 라우터

    • 데이터를 다른 네트워크에 전달하기 위해서 사용되는 컴퓨터 혹은 네트워크 장비

그림 3). 라우터


13

13.2 소켓 프로그래밍

  • 소켓

그림 4). IP, 포트, 소켓


13

13.2 소켓 프로그래밍

  • TCP 프로그램 작성


13

13.3 에코 프로그램

  • 예제: EchoServer.java

13 public void service() throws IOException {

14 System.out.println("EchoServer is ready.");

15 Socket client = server.accept();

16 InputStream is = client.getInputStream();

17 OutputStream os = client.getOutputStream();

18 ConsoleReader in = new ConsoleReader(is);

19 ConsoleWriter out = new ConsoleWriter(os);

20 while(true) {

21 String msg = in.readLine();

22 System.out.println(msg);

23 if(msg.equals("bye")) {

24 break;


13

13.3 에코 프로그램

  • 예제: EchoClient.java

1 import java.io.*;

2 import java.net.*;

3

4 public class EchoClient {

5 protected Socket socket;

6

7 public EchoClient(String host, int port) throws Exception {

8 socket = new Socket(host, port);

9 }


13

13.3 에코 프로그램

  • 예제: EchoClient.java(계속)

11 public void echo() throws IOException {

12 OutputStream os = socket.getOutputStream();

13 InputStream is = socket.getInputStream();

14 ConsoleReader in = new ConsoleReader(is);

15 ConsoleWriter out = new ConsoleWriter(os);

16 ConsoleReader con = new ConsoleReader(System.in);

17 while(true) {

18 String msg = con.readString();

19 out.println(msg);

20 out.flush();

21 if(msg.equals("bye")) {

22 break;


13

13.4 채팅 프로그램

  • 채팅 프로그램

    • ChatApplet – 채팅 애플릿 프로그램

    • ChatHandler – ChatApplet의 대화 내용을 받아서 다른 ChatHandler를 통해 다른 ChatApplet에 전달한다

    • ChatServer – ChatHandler들을 관리하는 프로그램


13

13.4 채팅 프로그램

  • 예제: ChatServer.java

10 ServerSocket server = new ServerSocket (port);

11 handlers = new Vector();

12 System.out.println("ChatServer is ready.");

13 while (true) {

14 Socket client = server.accept ();

15 if(debug)

16 System.out.println ("From: "+

17 client.getInetAddress());

18 ChatHandler c = new ChatHandler (this, client);

19 handlers.addElement(c);

20 c.start();


13

13.4 채팅 프로그램

  • 예제: ChatHandler.java

13 public ChatHandler(ChatServer server, Socket s)

14 throws IOException {

15

16 this.s = s;

17 this.server = server;

18 InputStream ins = s.getInputStream();

19 OutputStream os = s.getOutputStream();

20 i = new BufferedReader(new InputStreamReader(ins));

21 o = new PrintWriter(new OutputStreamWriter(os));


13

13.4 채팅 프로그램

  • 예제: ChatHandler.java(계속)

33 try {

34 name = i.readLine();

35 broadcast (name + "님이 방문하셨습니다.");

36 while (!stop) {

37 String msg = i.readLine();

38 if(msg.equals("!#%&")) {

39 setStop();

40 } else {

41 broadcast (name + " - " + msg);

42 }

43 }


13

13.4 채팅 프로그램

  • 예제: ChatHandler.java(계속)

61 protected void broadcast (String message) {

62 synchronized (server.handlers) {

63 int n = server.handlers.size();

64 for(int i=0; i < n; i++) {

65 ChatHandler c = (ChatHandler)

66 server.handlers.elementAt(i);

67 try {

68 synchronized (c.o) {

69 c.o.println(message);

70 }

71 c.o.flush ();

72 } catch (Exception ex) {

73 c.setStop();


13

13.4 채팅 프로그램

  • 예제: ChatApplet.java

public void run() {

try {

String host = getCodeBase().getHost();

Socket s = new Socket(host, 9830);

InputStream ins = s.getInputStream();

OutputStream os = s.getOutputStream();

i = new BufferedReader(new InputStreamReaer(ins));

o = new PrintWriter(new OutputStreamWriter(os));

execute();


13

13.4 채팅 프로그램

  • 예제: ChatApplet.java(계속)

public void execute() {

try {

while(!stop) {

String line = i.readLine();

output.append(line + "\n");

...

public void actionPerformed(ActionEvent e) {

...

if(c == input) {

o.println(input.getText());

o.flush();

input.setText("");


  • Login