ServerSocket이 있고 accept()를 실행한다고 가정 해 보겠습니다. 클라이언트가 연결되고 ServerSocket과 동일한 로컬 포트로 새로운 소켓이 생성됩니다. 클라이언트가이 소켓에 데이터를 보낸다고 가정 해보십시오. 포트에 도달하여 Java 응용 프로그램에 도달합니다. 여기서 얻은 데이터는 올바른 소켓에 어떻게 도달합니까?이 시나리오에서 ServerSocket은 정확히 어떻게 동작합니까?
두 대의 컴퓨터가 NAT를 통해 동일한 공용 IP 뒤에 숨어 있다고 가정 해보십시오. 결국 문제가 발생합니까? 같은 컴퓨터가 연결 (동일한 공용 IP 및 동일한 포트)을 만들려고하는 것처럼 보일까요? 마치 내가 여기에 뭔가 빠져있는 것처럼 느껴집니다.
네트워크 주소 변환이 어떻게 작동하는지 묻고 있습니까? 아니면 라우팅이 전혀 작동합니까? –
나는이 질문이 상당히 광범위하다고 생각한다. 하나의 질문에 문제가 있다고 물으면 더 좋을 것입니다. 이에 대한 가장 좋은 대답은 관련 RFC를 읽는 것입니다. TCP/IP, NAT 및 라우팅은 크고 복잡한 주제입니다. (나는 투표를하지 않을 것이다.) – markspace
좋아, 나는 편집하고 한 가지 질문에 맡길 것이다. Im은 두 가지 질문을하지만, 관련이 있습니다. 만약 두 대의 컴퓨터가 같은 공인 IP 뒤에 숨겨져 있다면 그것이 문제가 될 것이라고 묻는 Im은 이것이 마치 같은 컴퓨터 인 것처럼 보입니까? Im은 또한 소켓이 어떻게 결정되는지를 묻습니다. 데이터가 포트에 도달하여 해당 포트에 소켓이 두 개 있다고 말하면 데이터를 보낼 포트를 어떻게 알 수 있습니까? 그리고이 일을 담당하고있는 사람. – nhooyr