2013-04-07 3 views
0

동시에 여러 클라이언트를 처리하기 위해 서버를 구현한다면 TCP를 사용하는 것이 더 좋을까요?멀티 스레드 서버의 경우 TCP가 UDP보다 나은가요?

효율성을 고려하지 않았습니다 (저는 UDP가 더 빠르지 만 신뢰할 수 없음을 알고 있습니다).

UDP에서는 각 클라이언트 연결에 소켓을 사용할 수 없습니까? UDP에서 소켓은 대상 포트 번호 (오른쪽?)로 식별되기 때문에.

자바에서는 TCP로 동시에 여러 클라이언트를 처리하는 멀티 스레드 서버를 만드는 것이 쉽다는 것을 알고 있습니다. 하지만 UDP로 할 수 있습니까? 나는 그것이 매우 복잡 할 것이라고 상상한다.

저는 여기서 UDP에 대한 이해를 얻으 려하고 있습니다. (실제로 구현하고 싶지 않습니다.)

+0

왜 UDP가 더 어려워 야합니까? 그리고 "효율성을 고려하지 않은"당신의 "더 나은"정의는 무엇입니까? – mb21

답변

0

어떤 종류의 서버를 개발하는지에 따라 다릅니다. 클라이언트가 연결 상태를 유지하고 서버 (예 : 푸시 서비스)에서 데이터를받을 준비가 필요하면 TCP를 사용하여 구현해야합니다. 간단한 요청 - 응답 서비스를 구현하려면 UDP가 더 좋습니다.

+0

또한 고객이 잃어버린 메시지를 쉽게 처리 할 수 ​​있습니까? UDP는 배달을 보장하지 않으므로 클라이언트는 메시지가 손실되었는지 확인하고 처리해야합니다. TCP는 배달을 보장합니다. – Fred