2010-07-23 2 views
1

사용 NETSTAT (내 .NET 코드를 나누기)포트 혼란 내가 내 목록이 발견

TCP 127.0.0.1:9832   My-PC:9832   ESTABLISHED 

내 질문에 어떻게 내 로컬 포트가 나가는과 같은 TCP 포트에 연결되어있다?

포트 9832에서 수신 대기로 인해 코드가 손상되었습니다. 권한 오류가 발생합니다. 이 코드가 작동하기 전에 파이어 폭스를 잃고 모든 탭을 다시 열어야합니다. 또 다른 질문은 내가 듣기에 사용되어야하고 나가는 연결로 사용하지 않을 범위가 있다는 것입니다.

혼란 스럽습니다.

답변

0

나가는 연결과 수신에 동일한 포트 번호를 사용하는 것이 완전히 타당합니다. 자신의 컴퓨터에 연결하고 있다면, 보여준 것처럼 netstat 출력을 얻을 수 있습니다.

TCP 연결은 4-tuple (source-ip, source-port, dest-ip, dest-port)로 식별되므로 source-port는 dest-port와 같을 수 없습니다.

클라이언트 코드의 특정 포트에 바인딩되어있을 가능성이 있습니까? 일반적으로 서버 코드의 특정 포트에만 바인딩하면됩니다.

Firefox를 닫아야한다는 문제는 의심의 여지없이이 문제와 관련이 없습니다.

+0

하지만, 코셔가 아니라면 * 루프백 * 연결의 양쪽 끝에 동일한 포트가 있습니다. 그러면 4- 튜플은 양방향으로 동일합니다. 또한, 나는 한쪽에는 루프백 주소가 있고 다른 한쪽에는 루프백이 아닌 연결을 설정할 수 있다고 생각하지 않습니다. –

+0

나는 IP 주소가 같은 경우 포트를 사용하는 것이 유효하지 않다고 생각했다. 패킷이 127.0.0.1:123에서 127.0.0.1:123으로 전송 된 경우 서버 또는 클라이언트가 보낸 것인지 어떻게 알 수 있습니까? 큐에있는 패킷이 127.0.0.1:123으로 표시되는 경우 클라이언트 또는 서버가 수신하는 것을 어떻게 알 수 있습니까? 너무 혼란 스럽습니다. –

+0

My * client * 코드가 일부 아약스입니다. GM_xmlhttpRequest가 정확해야합니다. 나는 포트에 바인딩하는 것이 가능하다고 생각하지 않는다. 문제가없는 고객이 여러 명 있습니다. 나중에 문제가 생길 때가 있습니다. VS에서 내 프로세스를 죽인 후에도 내 소켓이 여전히 살아있을 수 있습니다. 나는 아직도 혼란 스럽다. –

관련 문제