2012-03-29 4 views
1

나의 과정에서 자바로 비트 토 런트 클라이언트를 만들어야한다. 연결이 어떻게 처리되는지를 개념화하는 데 어려움을 겪고 있습니다. 나는 단계별로 가서 나를 귀찮게하는 부분을 지적 할 것이다. 잘못된 진술을하면 문제가 해결되지만 대부분 프로토콜에 대해 이해할 수 있지만 들어오는 동료와의 연결 및 포트와 소켓을 다루는 데 더 많은 문제가 있습니다.비트 토 런트 프로토콜 자바 프로젝트 - 들어오는 연결

그래서 트래커에 연결할 때 당신과 연결할 친구를 위해 당신이 듣고있는 포트를 알려줍니다.

추적기에서 가져온 피어 사전에는 수신 대기중인 모든 피어 포트가 포함됩니다. 이러한 피어와 연결하려면 임의의 포트에 소켓을 만든 다음 핸드 셰이크를 전송하면됩니다.

이제 내 질문은, 상대방의 동료 인 경우입니다. 즉, 추적기에 준 포트에서 수신 대기중인 경우 해당 피어가 해당 포트에서 핸드 셰이크를 보내면 다른 포트로 전송할 피어와 어떻게 통신 할 수 있습니까?

I 포트와 소켓이 하나 이상의 피어에서 다운로드뿐만 아니라 업로드 처리하는 방법을 알아 내려고 매우 혼란받은하지만 여기에 몇 가지 내가 만든 한 가정입니다했습니다 모든 들어

  1. 당신이 업로드 한 새로운 포트/소켓을 사용합니다 (만약 그들이 활성 피어라면).
  2. 추적기에 제공된 포트는 들어오는 피어의 수신에만 사용됩니다.

포트 및 소켓에 대한 나의 이해가 어쩌면 문제를 파악하지 못하는 것일 수도 있습니다. 나는이 말을 올바르게 바랐 으면 좋겠다. 감사.

답변

1

서버가 들어오는 연결을 특정 포트에서 수신하는 동안 기본 프로토콜은 핸드 셰이크의 일부로 새 포트로 전환합니다. 다른 포트를 사용하도록 상대방에게 알릴 필요는 없습니다.

+0

또 다른 질문이 있습니다. 하나의 포트가 총 대역폭의 제한된 다운로드/업로드 속도를 얻나요? –

+0

@PeteJodo - 실제 실제 대역폭보다 소프트웨어를 통한 이론적 인 처리량보다 훨씬 적습니다. TCP/IP는 포트 자체에 제한을 두지 않지만 운영 체제 나 다른 소프트웨어/하드웨어가 그렇게하지 못하도록 차단하지는 않습니다. –

관련 문제