|
안녕하세요!
ServerSocket, ClientSocket 는 Indy 의 IdTcpServer 랑 IdTcpClient랑
기능이 비슷합니다.
하지만 다른점이자 장점인 동시에 단점인 것은
Indy가 자동으로 Thread를 클라이언트에게 1나씩 할당을
하죠 그래서 편한데...
문제는 이 Indy의 Server에서 클라이언트에 Thread를 하나씩 할당 하면
서버측에선 CPU가 클라이언트로 부터 요청한걸 처리를 해야 합니다.. 20-30코넥션
미만이면 상관이 없겠지만..200-400 코넥션인경우 CPU는 Thread들간의
Switching을 한다고 시간을 다 소비 하게 돼져..결국 포퍼먼스가 무진장
떨어진다는 소리입니다.
Indy의 IdTcpServer를 사용 하실려면...
1. 상용화가 목적인경우
- 개발의 종류에 따라 틀리겠지만 System이 조질라게 빵빵해야 한다.
- 20 코넥션 정도를 유지한다면 엄청난 개발툴일수도.
2. 순전히 보여주기 위한 개발용으로..
- 소위 Report용이라고 하지요.
ServerSocket를 사용함에 있어서 <-- 전 코딩 해보지 못했음 단지
테스트 용으로만 깔작였음둥..
따지고 보면 개발자 입장에선 ServerSocket 이놈이 더 좋을지도 모릅니다
Thread를 개발자가 생성 할수 있으니깐여
20-30 코넥션당 1Thread 할당하는 씩으로
//////////////////////////////////////////////////////////////
[결론] Thread를 사용 하는 이유를 아신다면 모든 질문에 대한 답이나
제가 떠들어 댔던 것에 대한 충분한 이유가 될것 같군여
위의 글들은 Indy TCP에 관한 언급입니다.
Overlapped I/O -->I/O Complete Port를 권해 드립니다.
//////////////////////////////////////////////////////////////
양정석 님이 쓰신 글 :
: Borland C++ builder에는 ServerSocket, ClientSocket이 이미 있습니다.
: 그런데Indy 컴포넌트를 많이 쓴다고 하는데 특별한 이유가 있나요?
: 원래 기본 컴포넌트가 불안하다거나 아님 인디에 특별한 기능이 많아서 인가요?
:
|