저번에 최용일님 말씀대로
한개의 클라이언트가 Suspend/Resume을 하기 위해서
두개의 소켓을 생성하여 한 소켓은 Suspend 다른 한 소켓은 Resume을
하도록 구현하였습니다.
근데, 그렇게 A라는 클라이언트가 2개의 소켓으로 중지/재시작의 작업을 수행했고,
결국 성공했는데요....
문제는 서버가 계속 실행중인 상태에서 위 작업을 딱 한번밖에 못합니다.
똑같은 A라는 클라이언트가 다시 접속하여, 위와같은 작업을 다시 하기위해
두개의 소켓을 가지고 작업을 하려는데 Suspend시켜놓은 후,
다른 한 소켓이 Resume을 시켰는데도, Resume이 되질 않습니다.
어떻게 해야할지요....
최용일님...고수님들 부탁드립니다...ㅡ.ㅜ;;;
(
소스 첨부할께요...Disconnect/Connect/Resume/Suspend 쪽
확인 부탁드릴께요...ㅡ.ㅜ;;
한소켓은 strID := 'Test' (이넘은 항상 Suspend역할),
다른 한 소켓은 strID := '_Test' (이넘은 항상 Resume역할)
이런식으로 구분합니다.
)
꼭~좀 부탁드립니다.....
서버의 인디커넥션쓰레드(TIdPeerThread)는 제대로 Suspend, Resume되는데요...
님이 원하시는게 서버의 OnExecute이벤트 실행중에 작업을 멈추게 하려는거 같은데... 이건 서버의 인디커넥션쓰레드내에서 돌아가는게 아님니다. 서버(TIdTCPServer)가 알아서 돌려주는거죠... 쓰레드의 Suspend, Resume하고 서버의 OnExecute하고는 별로 상관관계가 없습니다.
이런식의 접근 방식은 별로 추천할만한게 아니네요...
저번에 얘기했던데로 프로토콜을 다시 정의하세요... 클라이언트가 일정부분의 데이터만 서버에 요청해서 얻어올 수 있도록...
^^ 항상 즐코하세요...