WebApp getServerPort(), getLocalPort(), getRemotePort()

황제낙엽 2006.08.07 23:42 조회 수 : 1929 추천:176

sitelink1  
sitelink2  
sitelink3  
sitelink4  
sitelink5  
sitelink6  

getServerPort(), getLocalPort() 두 개를 같이 설명하는 것이 이해하기 빠를 것 같으니, 쉬운 것부터 먼저 설명해보겠습니다.


getRemotePort(); 이 메서드 이름을  보고 바로 드는 의문은 어디로부터 원격(Remote)이냐는 것입니다.

서버가 이 질문을 했다면 서버의 원격인 클라이언트가 원격일 테고, 클라이언트가 이 질문을 했다면 서버가 원격일 것입니다.

그런데 이 코드는 당연하게도 서버에서 수행되는 코드입니다.

따라서 getRemotePort()는 요청을 보낸 클라이언트의 포트를 의미합니다.

 

getServerPort()는 "요청이 들어온 서버 포트는 어딘가?"라는 질문을 던졌을 때 바로 그 포트를 말합니다.

그 다음 getLocalPort()는 "그래서 결국 서버의 어떤 포트에 요청이 물렸는데?"에서의 포트입니다.

 

부연 설명하자면, 사용자의 요청은 서버가 리스닝하고 있는 특정 포트로 들어옵니다.

요청이 한 두개 들어오는 것이 아니므로, 서버는 각각의 요청을 새로운 포트를 만들어 스레드를 할당하여 처리합니다.

 

이것이 바로 동시에 여러 클라이언트를 핸들링하는 방식입니다.

여기서 처음 들어오는 포트가 바로 ServerPort이고, 스레드를 위한 포트가 LocalPort입니다."