AI교육과정 - Java.12

단비·2022년 10월 19일
0

AI교육과정

목록 보기
15/69
  • bw.flush() : 버퍼를 비우면서 데이터를 내보냄
  • serverSocket.accept() : 프로그램은 실행을 멈추고 클라이언트가 연결될 때까지 무한 대기

  • 네트워크(Network)
    • Net + work 합성어
    • 컴퓨터들이 통신 기술을 이용하여 그물망처럼 연결된 통신 이용 형태
    • 인터넷(Internet)
      • 컴퓨터로 연결하여 TCP/IP 프로토콜(규약)을 이용하여 정보를 주고받는 네트워크
    • IP(Internet Protocol)
      • 인터넷에 연결되어있는 모든 장치를 식별할 수 있도록 장비에게 부여되는 고유 주소
    • IPv4
      • 8bit씩 4자리
      • 하나의 스텟마다 0 ~ 255 (0 ~ 42억 9천) 예) 211.100.85.100
      • 향후 IPv6, 32bit
    • 내 아이피 확인
      • 네이버 ‘내 ip’ 로 검색 → 123.142.55.115
      • cmd → ipconfig → 192.168.6.25
    • 도메인 → IP / IP → 도메인
      • cmd → nslookup
    • 포트(port)
      • 컴퓨터나 통신장비에서 다른 장치에 물리적으로 접속되는 특정한 통로
    • InetAddress 클래스
      • IP 주소 관련 클래스
      • getHostName() : 도메인을 리턴
      • getHostAddress() : IP주소를 리턴
    • URL 클래스
      • URL 주소 관련 클래스
      • getProtocol() : 프로토콜
      • getHost() : 호스트(도메인)
      • getPort() : 포트
      • getPath() : 리소스
      • getQuery() : 값
      1. URLConnection 클래스
        • URL 클래스보다 추가된 기능, 연결에 대한 정보를 리턴
        • getContent() : URL Content 리턴
        • getDate() : timestamp ex) 1666142611000
        • getURL() : URL 주소
        • openStream() : 소스코드
          • URL만 가지고, InputStreamReader에 스트림을 보내서 처리, 커넥션의 문제 등이 발생하는 등의 여러가지 설정을 추가로 할 수 없기 때문에 잘 쓰이지 않는 방식
    • 버퍼(buffer)
      • 입출력을 수행하는데 있어 속도차이를 극복하기 위해 사용하는 임시 저장 공간
      • 프로그래밍이나 운영체제에서 CPU와 보조기억장치 사이에서 사용되는 임시 저장 공간
      1. BufferedReader 클래스
        • 데이터(문자)를 버퍼에 담가줌
      2. BufferedInputStream 클래스
        • 바이너리를 버퍼에 담아줌
  • TCP/IP 네트워킹
    • 소켓(socket)
      - 두 호스트 사이 연결
      - 어떠한 방식으로 통신을 할지 정해주는 것
      - 원격 장비에 연결, 데이터 전송(보내기, 받기), 포트 지정, 수신 대기[c/s(서버와 클라이언트 관계), p2p]
      1. ServerSocket 클래스
      - 클라이언트의 연결 요청을 기다리면서 연결 수락을 담당하는 클래스
      2. Socket 클래스
      -연결된 클라이언트와 통신을 담당하는 클래스

      // 서버
      ServerSocket serverSocket = null;
              Socket socket = null;
              try {
                  serverSocket = new ServerSocket(3579);
                  System.out.println("서버가 준비되었습니다");
                  socket = serverSocket.accept();
                  System.out.println("클라이언트가 접속되었습니다");
              } catch (IOException e) {
                  e.printStackTrace();
              } finally {
                  if(socket != null) try {socket.close();} catch (IOException e) {}
                  if(serverSocket != null) try {serverSocket.close();} catch (IOException e) {}
              }
      // 클라이언트
      Socket socket = null;
      
              try{
                  System.out.println("서버와 연결을 시도중입니다.");
                  socket = new Socket("192.168.6.25", 3579);
      
                  System.out.println("연결 되었습니다.");
              } catch (IOException e){
                  e.printStackTrace();
              } finally {
                  if(socket != null) try{socket.close();} catch(IOException e){}
              }
profile
tistory로 이전! https://sweet-rain-kim.tistory.com/

0개의 댓글