1 / 19

13. 네트워크 프로그래밍

13. 네트워크 프로그래밍. 최종명 choijm@dreamwiz.com. 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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 13. 네트워크 프로그래밍 최종명 choijm@dreamwiz.com

  2. 13.1 TCP/IP 이해 • 프로토콜 • 통신을 수행하기 위한 약속 • 데이터 포맷 • 명령어 • 인터넷의 역사 • ARPAnet • TCP/IP • NSFnet

  3. 13.1 TCP/IP 이해 • LAN(Local Area Network)

  4. 13.1 TCP/IP 이해 • 이더넷 주소 • 네트워크 카드 주소 • 이더넷 주소 확인하는 명령어 ipconfig /all

  5. 13.1 TCP/IP 이해 • IP 주소 • 4개의 점으로 구성된 논리적인 컴퓨터 주소 • 예: 218.237.236.192 • 컴퓨터 이름 • IP 주소를 사람이 기억하기 쉬운 이름으로 표현한 것 • DNS (Domain Name System) • 컴퓨터 이름을 IP 주소로 변환해주는 서버 • DNS가 작동되는 방법을 알아보는 명령어 nslookup java.sun.com

  6. 13.1 TCP/IP 이해 • 네트워크 구성 • 브로드캐스트 • 같은 네트워크에 소속된 모든 컴퓨터에 메시지를 전달하는 것

  7. 13.1 TCP/IP 이해 • ARP(Address Resolution Protocol) • IP 주소를 이더넷 주소로 변환해주는 것 • arp –a 명령어 • 라우터 • 데이터를 다른 네트워크에 전달하기 위해서 사용되는 컴퓨터 혹은 네트워크 장비 그림 3). 라우터

  8. 13.2 소켓 프로그래밍 • 소켓 그림 4). IP, 포트, 소켓

  9. 13.2 소켓 프로그래밍 • TCP 프로그램 작성

  10. 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;

  11. 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 } …

  12. 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들을 관리하는 프로그램

  14. 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();

  15. 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));

  16. 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 }

  17. 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();

  18. 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(); …

  19. 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("");

More Related