안녕하세요...
Indy로 프로그래밍 테스트를 해보다가.. 이렇게 질문을 올립니다...
Indy는 기본적으로 Thread를 지원하잖아여.... 구래서 이걸 이용해서 프로젝트를
하고 있는데...
델파이의 Internet팔레트에 있는 TServerSocket나 TClientSocket와 비교하며
말씀드리겠습니다.. TClientSocket같은 경우는 서버로 부터 메시지가 날라오면
이 메시지를 처리하기 위해서 OnRead이벤트를 발생시킴니다.. 날라오는 족족.. 말이여
하지만 Indy에 있는 IdTCPClient같은 경우는.. 이런 이벤트가 없습니다...
그래서 서버에서 처리한 데이터를 클라이언트에서 받을려면. 어떻게 해야하는지가..
궁금해서여...
기본적으로 서버에서 AThread.Connection.Writeln(보낼문자열)하면 클라이언트로
메시지가 날라갑니다...
그러면 클라이언트는 IdTCPServer.Readln을 이용해서 날라온 데이터를 받게 되져..
하지만 만약에 서버에서 1부터 10000까지 루프를 돌리면서.. 각 증가값을....
클라이언트로 보낼려고 합니다.. 그러니까.. 1 2 3...... 9999라는 값을.. 돌면서
보내게 됩니다.. 그럴경우.. 클라이언트에서 이 데이터를 받아야 하는데..
서버로부터 이런 데이터가 족족 날라올 경우.. 이벤트를 발생시켜 데이터를 보여주거나
처리 하게되는데...
IdTCPClient에 있는 이벤트에는 그러한 것이 없는거 같습니다....
그래서 혹시. 이걸 해결 할 수 있는 방법을 알고 계신분이.. 있나 해서이렇게
질문을 드립니다....
그럼.. 추운데.. 프로그래밍하시느라 고생이 많으시겠지만....
꼭좀 부탁드립니다.... 감사합니다...............................
클라이언트에서는 커넥션이 유지되는한 계속해서 루프를 돌며 새로운 메세지가 있나 살핍니다.(Indy는 sync방식을 사용하기 때문에 들어오는 데이터가 없으면 그냥 멈춰서 다음 메세지를 기다리게 됩니다.)
그러니까 쓰레드를 하나 생성하고 쓰레드가 죽지않는한 계속해서 while do loop문을 쓰시면서 오는 데이터를 받으시면 됩니다.
심종현 wrote:
> 안녕하세요...
> Indy로 프로그래밍 테스트를 해보다가.. 이렇게 질문을 올립니다...
> Indy는 기본적으로 Thread를 지원하잖아여.... 구래서 이걸 이용해서 프로젝트를
> 하고 있는데...
> 델파이의 Internet팔레트에 있는 TServerSocket나 TClientSocket와 비교하며
> 말씀드리겠습니다.. TClientSocket같은 경우는 서버로 부터 메시지가 날라오면
> 이 메시지를 처리하기 위해서 OnRead이벤트를 발생시킴니다.. 날라오는 족족.. 말이여
> 하지만 Indy에 있는 IdTCPClient같은 경우는.. 이런 이벤트가 없습니다...
> 그래서 서버에서 처리한 데이터를 클라이언트에서 받을려면. 어떻게 해야하는지가..
> 궁금해서여...
> 기본적으로 서버에서 AThread.Connection.Writeln(보낼문자열)하면 클라이언트로
> 메시지가 날라갑니다...
> 그러면 클라이언트는 IdTCPServer.Readln을 이용해서 날라온 데이터를 받게 되져..
> 하지만 만약에 서버에서 1부터 10000까지 루프를 돌리면서.. 각 증가값을....
> 클라이언트로 보낼려고 합니다.. 그러니까.. 1 2 3...... 9999라는 값을.. 돌면서
> 보내게 됩니다.. 그럴경우.. 클라이언트에서 이 데이터를 받아야 하는데..
> 서버로부터 이런 데이터가 족족 날라올 경우.. 이벤트를 발생시켜 데이터를 보여주거나
> 처리 하게되는데...
> IdTCPClient에 있는 이벤트에는 그러한 것이 없는거 같습니다....
> 그래서 혹시. 이걸 해결 할 수 있는 방법을 알고 계신분이.. 있나 해서이렇게
> 질문을 드립니다....
> 그럼.. 추운데.. 프로그래밍하시느라 고생이 많으시겠지만....
> 꼭좀 부탁드립니다.... 감사합니다...............................
>