Java- Socket

김동규·2022년 11월 24일
0

JAVA

목록 보기
38/38

🤔Socket??

소켓(socket) 이란 프로세스간의 통신에 사용되는 양쪽 끝단을 의미한다. 자바에서는 java.net패키지를 통해 소캣 프로그래밍을 지원하는데, 소켓 통신에 사용되는 프로토콜에 따라 다른 종류의 소켓을 구현하여 제공한다.

  • 소켓 → 프로토콜, ip주소, 포트넘버로 정의 된다.
  • 떨어져 있는 두 호스트를 연결해주는 도구로써 인터페이스 역할을한다.
  • 데이터를 주고 받을 수 있는 구조체로 소켓을 통해 데이터 통로가 만들어 진다.
  • 소켓의 역할에 따라 클라이언트 소켓, 서버소켓으로 구분된다.


머...머라는교...

위의 글이나 그림으로 봐서는 명확하게 알기 힘들다. 간단히 말하자면 소켓은 서버와 클라이언트를 연결 시켜주는 도구라고 생각하자.

서버는 서버소켓을 만들고,클라이언트는 자신만의 소켓을 만들어 이두 소켓을 포트번호와 IP 로 연결시킬수있다. 여기서 서버소켓은 while문을 이용해 유저의 accept()를 기다린다. 이후 연결되면 read,write 기능이 사용가능해지고 close()하게되면 소켓의 연결이 끊기게된다. 어렵게생각하지말자 충분히 가능하다.

소켓 종류(TCP,UDP)

TCP

  • 양방향으로 바이트 스트림을 전송, 연결 지향성
  • 오류 수정, 전송 처리, 흐름제어 보장
  • 송신된 순서에 따라 중복되지 않게 데이터를 수신 → 오버헤드 발생
  • 소량의 데이터보다 대량의 데이터에 적합

UDP

  • 비연결형 소켓
  • 데이터의 크기에 제한이 있음.
  • 확실하게 전달이 보장되지 않음. → 데이터가 손실되도 오류 발생 안됨.
  • 실시간 멀티미디어 정보를 처리하기 위해 주로 사용 → 전화

알아두도록 하자.

profile
HigasiHosi

0개의 댓글