2010-01-20 4 views
-2

두 개의 다른 소켓을 사용하는 이유를 알 수 없으므로 감사합니다.문제 (클라이언트/서버)

클라이언트가 서버에서 소켓 9123 을 통해 파일을 요청하면 서버는 의 소켓 8123을 통해 클라이언트로 파일을 보내고 모든 클라이언트는 파일을 요청하면이를 수신합니다.

+0

'it'제품입니까? '그것'이 당신의 코드입니까? –

답변

0

TCP 연결은 두 개의 포트 번호 사이에 있습니다. 클라이언트에는 응답을 전달할 포트 번호가 있으며 서버에는 클라이언트가 요청을 전송할 포트가 있습니다.

1

당신은

  • 는 각 클라이언트가 UDP 포트 8123에서 수신 대기 않습니다 ... 그것보다 더 설명 할 필요가 서버가 한 번에 모두와 통신하도록되어 - 그래서, 즉 UDP 소켓의 경우 귀하는 클라이언트가 파일을 수신한다는 어떠한 보증도하지 않습니다.

  • 각 클라이언트는 TCP 포트 8123에서 수신 대기합니까 (서버가 먼저 파일을 요청한 클라이언트에 다시 연결해야합니까?). 클라이언트가 이미 있으므로 클라이언트가이 파일을 요청했습니다. -server connection established (포트 9123 - 기술적으로 서버에서 연결이 이루어지면 통신은 9123에서 열린 높은 포트로 이동 함) - 파일을 보낼 스레드를 생성하면 서버 소켓은 다른 클라이언트의 연결을 수락하십시오. 한 포트에서 요청을 받고 다른 서버에서 파일을 보내야하는 경우 (왜 필요합니까?) 요청을받은 후에 새 소켓을 만들고이를 클라이언트에 연결 한 다음 파일을 보내야합니다. 그런 식으로 구현하십시오.