[컴퓨터네트워크] 13. 응용계층 소개(2)

2024. 5. 23. 00:20·Computer Science/Network

응용계층 소개(2)


C 반복적 프로그래밍

TCP 반복적 프로그래밍 (서버)

  • Scoket()으로 소켓 생성
  • Bind()로 지정된 서버 주소와 포트 설정
  • Listen()으로 클라이언트로부터의 연결을 기다리는 준비를 함
  • Accept()를 호출하면, 연결을 기다림 (block)
  • Recv()로 데이터 수신
  • Send()로 데이터 송신

TCP 반복적 프로그래밍 (클라이언트)

  • Socket()으로 소켓 생성
  • Connect()로 지정된 서버로 연결 설정 (block)
    • 연결 완료, 혹은 에러 시 block 해제
  • Recv()로 데이터 수신
  • Send()로 데이터 송신

 

Echo 서버 프로그램

 

Echo 클라이언트 프로그램

 

Java 반복적 프로그래밍

주소와 포트

  • InetAddress class
    • Inet4Address class
    • Inet6Address class
  • Port Number : int (32bit)
    • (원래 short 16bit 이지만, int에 넣는다)
    • (16bit의 값이 MSB가 1이면 음수이기 때문에, 양수로 보기 위해서 int에 저장하는 것)
  • InetScoketAddress class
    • (IP + Port)

 

 

UDP 반복 프로그래밍

  • DatagramSocket class
    • send() 메소드
    • receive() 메소드
    • close() 메소드
  • DatagramPacket class
    • getAddress() 메소드
    • getPort() 메소드
    • getData() 메소드
    • getLength() 메소드

 

UDP 서버

 

패킷을 전송하고 수신하기 위해서 Socket을 거친다

 

UDP 서버 프로그램

 

 

 

 

UDP 클라이언트

 

 

 

 

 

TCP 반복적 프로그래밍

  • ServerSocket class : 연결 설정 listen용 소켓
    • Accept() 메소드
    • Bind() 메소드
    • getInetAddress() 메소드
    • getLocalSocketAddress() 메소드
  • Socket class : 데이터 송수신용 소켓
    • Connect() 메소드
    • getInetAddress(), getRemoteAddress() 메소드
    • getPort(), getLocalPort() 메소드
    • getInputStream(), getOutputStream() 메소드

 

 

TCP 서버

 

 

 

 

 

TCP 클라이언트

 

 

 

 

 

'Computer Science > Network' 카테고리의 다른 글

[컴퓨터네트워크] 15. 표준 클라이언트/서버 프로토콜 (2)  (0) 2024.05.23
[컴퓨터네트워크] 14. 표준 클라이언트/서버 프로토콜 (1)  (0) 2024.05.23
[컴퓨터네트워크] 12. 응용계층 소개(1)  (0) 2024.05.22
[컴퓨터네트워크] 11. 전송계층 프로토콜(2)  (0) 2024.05.22
[컴퓨터네트워크] 10. 전송계층 프로토콜(1)  (0) 2024.05.19
'Computer Science/Network' 카테고리의 다른 글
  • [컴퓨터네트워크] 15. 표준 클라이언트/서버 프로토콜 (2)
  • [컴퓨터네트워크] 14. 표준 클라이언트/서버 프로토콜 (1)
  • [컴퓨터네트워크] 12. 응용계층 소개(1)
  • [컴퓨터네트워크] 11. 전송계층 프로토콜(2)
lumana
lumana
배움을 나누는 공간 https://github.com/bebeis
  • lumana
    Brute force Study
    lumana
  • 전체
    오늘
    어제
    • 분류 전체보기 (452) N
      • Software Development (27)
        • Performance (0)
        • TroubleShooting (1)
        • Refactoring (0)
        • Test (8)
        • Code Style, Convetion (0)
        • DDD (0)
        • Software Engineering (18)
      • Java (71)
        • Basic (5)
        • Core (21)
        • Collection (7)
        • 멀티스레드&동시성 (13)
        • IO, Network (8)
        • Reflection, Annotation (3)
        • Modern Java(8~) (12)
        • JVM (2)
      • Spring (53) N
        • Framework (12)
        • MVC (23)
        • Transaction (3) N
        • AOP (11) N
        • Boot (0)
        • AI (0)
      • DB Access (1)
        • Jdbc (1)
        • JdbcTemplate (0)
        • JPA (14)
        • Spring Data JPA (0)
        • QueryDSL (0)
      • Computer Science (125)
        • Data Structure (27)
        • OS (14)
        • Database (10)
        • Network (21)
        • 컴퓨터구조 (1)
        • 시스템 프로그래밍 (23)
        • Algorithm (29)
      • HTTP (8)
      • Infra (1)
        • Docker (1)
      • 프로그래밍언어론 (15)
      • Programming Language(Sub) (77)
        • Kotlin (1)
        • Python (25)
        • C++ (51)
        • JavaScript (0)
      • FE (11)
        • HTML (1)
        • CSS (9)
        • React (0)
        • Application (1)
      • Unix_Linux (0)
        • Common (0)
      • PS (13)
        • BOJ (7)
        • Tip (3)
        • 프로그래머스 (0)
        • CodeForce (0)
      • Book Review (4)
        • Clean Code (4)
      • Math (3)
        • Linear Algebra (3)
      • AI (7)
        • DL (0)
        • ML (0)
        • DA (0)
        • Concepts (7)
      • 프리코스 (4)
      • Project Review (6)
      • LegacyPosts (11)
      • 모니터 (0)
      • Diary (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
lumana
[컴퓨터네트워크] 13. 응용계층 소개(2)
상단으로

티스토리툴바