JAVA,객체지향

소켓통신 개념(포트(port)개념)

25G 2021. 12. 2. 13:16

소켓통신을 이해하기 위해선포트(port)를 이해하는 선수과정이 필요하다.

 

포트는 주차요원이 손님의 차키를 받아서 주차를 시킬 때 만약에 주차선을 지키지도 않고 그냥 넣어지는 대로 주차를 하면 어떻게 될까? 아마 차를 뺄 수도 없게 되고 한 곳에 차를 몰아서 주차시켰다면 꽉 차서 주차를 더 이상 할 수 없게 될 수도 있다.

차를 주차시키는 위치가 포트 주소가 된다.

 

컴퓨터통신에 왜 포트가 필요할까?

 

컴퓨터로 LOL도 하고 카카오톡 도하면서 스타크래프트도 동시에 할 수 있다. 그럼 각각 의 프로그램이 데이터를 주고받기 위해서 Byte Stream이 필요하게 되는데 LOL도 스타도 카톡도 다 각자의 ByteStream이 필요한 상황에서 컴퓨터로 연결된 렌선은 하나밖에 없다.

그럼 LOL 서버로부터 우리 집 컴퓨터까지 데이터를 받기는 받았는데 어떻게 LOL이라는 프로그램으로 데이터를 보낼지에 대한 기준이 필요한 것이다. 이 기준이 바로 Port(포트)라고 한다.

그래서

LOL :2000 포트

스타 : 2991 포트

카톡: 1020 포트

이렇게 포트 번지수가 지정돼 있으면 LOL 서버에서 2000 포트로 데이터를 우리 집 컴퓨터로 들어오면 컴퓨터가 이 Port번호를 보고 실행 중인 2000 포트 프로그램을 찾아서 데이터를 전송해 주는 것이다.

 

포트는 0번부터 65535번까지 만들 수 있다 즉 65536개의 포트를 만들 수 있고

0~1023 포트는 건드릴수 없는 포트고

1024 ~ 이상의 포트는 얼마든지 내가 설정해서 사용할 수 있다 단 조건은 포트번호가 겹치지 않는 선에서!

 

 

소캣 통신을 정의하자면

양 끝단에 서로 포트를 달고 포트끼리 ByteStream을 연결해서 데이터를 주고받는 것이다.

서로 데이터를 줄 수도 받을 수도 있도록!.

 

 

 

'JAVA,객체지향' 카테고리의 다른 글

소켓통신 실습 (스레드로 양방향통신)  (0) 2021.12.03
소켓통신 실습 (일대일)  (0) 2021.12.03
버퍼(Buffer)란?  (0) 2021.12.02
String Constant Pool  (2) 2021.12.02
예외처리란?  (0) 2021.12.01