현재 사용하는 컴포넌트는 indy의 TCP 쪽입니다.
최대접속자수는 약 200명정도이구요.(실시간채팅)
한데 서버측의 하나의 클라이언트 쓰레드가 하루에 한번씩은
쓰레드가 멈춰있어서 상태나 머 이런것들을 브로드캐스팅
(보낼려고 하는 쓰레드가 다른 200명에게 어떤데이타를 보낼시에)
할때 만약 200명에서 59번째 쓰레드가 이상이생겨 멈춰있다고 하면
브로드캐스팅하는 쓰레드도 58번째까지는 데이타를 잘보내다가
59째 보낼시에 함께 먹통이 되더라구요.
(이런건 데드락 이걸린걸까요?)
1. 그래서 이걸 해결하기 위해 indy TCP 서버에서는 하나의 클라이언트에
쓰레드가 하나이여서 PostThreadMessage 를 사용하면 쓰레드끼리 데이타를
보내주고 이벤트 발생시켜 알아서 데이타 보내라 머 이런 방법이 없을까요?
이것저것 찾아보는데 답이 안보여서요. 해당 쓰레드에게 데이타까지는
보낼수 있을꺼같은데 이벤트 발생시켜 알려주는 방법을 모르겠습니다...
2. 위의 방법이 안된다면 indy컴포넌트를 포기하고 다른 무료 컴포넌트가 있는지요?
현재 제가 찾아본결과는 ICS라고 있긴한데 이걸써도 괜찮을지요..
안정성과 속도만 괜찮다면 많이 변경하더라도 변경해볼려고 하는데요.
ICS가 요즘은 별로 사용하지 않은듯도하고 indy에 뭍인거같기도 해서
그리 용기가 나지 않네요...
3. 현재 디비서버는 하나의 exe에 디비커넥도 함께 하고있습니다.
소켓부분과 디비쪽 커넥해서 데이타를 던져주는 부분도 따로 분리를
시키는게 좋을까요?
4. 보통 서버에 쓰레드가 많으면 좋지 않다고는 하는데요. 버겁더라도
하나의 서버에 1000개의 쓰레드는 되나요? cpu3.0 듀얼이라면요...
선배들의 조언을 부탁드립니다.