procedure send(Sender: Tobject);
begin
ClientSocket1.Socket.SendText('자료보내당~');
sleep(2000);
// 다음라인이 실행하나요 아님 ClientSocket1Read 이벤트가 먼저 실행되나요?
for p:=1 to 10 do
begin
sleep(1000);
Inc(DelayTime);
end;
end;
procedure TMainC2Form.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
begin
end;
제가 구현할여는데 막히는 부분이네요.
socket으로 데이타를 보낸뒤 서버에서 처리를하고 다시 ClientSocket1Read와서 서버에서 가져온 결과를 처리합니다. 그러나 예를들어 서버에서 Error가나서 Data를 다시 보내오지 못할시 일정시간이 지나면 프로그램이 그만 실행되게 하고 싶습니다.
ClientSocket1.Socket.SendText('자료보내당~'); 하면 서버쪽으로 데이타를 보냅니다.
데이타를 받은 서버는 다시 ClientSocket에게 데이타를 줍니다.
이 시간이 정확히 어느정도 걸린다고는 말씀 드리기 어렵습니다...
또 Sleep 함수를 이용해 Delay를 거는 것 또한 좋은 방법이라고 말씀 드리기 어렵구요...
GettickCount를 써써 데이타 보내 시간과 데이타 받는 시간을 저장해놓으시고...Timer등을 통해 그 시간 사이의 갭을 구하는 식으로 하셔야 할 것 같아요.
주기적으로 데이타를 보내는 거라면 Timer도 계속 돌리시면 되고...
그런 것이 아니라면 Send하실 때 Timer 돌리시고...데이타 들어올 떄나 혹은
시간 경과 되었을 때 Timer 꺼주시는 식으로 하시면 되요...
자세한 상황은 잘 몰라서 루틴은 올리지 않을께요...
루틴을 받아보시고 싶으시면...질문을 좀 더 자세히 해주세요...