|
아래의 코드는 쓰레드 부분에 작성된 소스입니다.
우선 TCP 서버와 연결은 잘되며 데이터 전송도 잘됩니다.
그런데 TCP 서버에서 데이터를 전송하면 인디소켓에서 수신이 안되는 상황에서
Disconnect를 수행하면 그 순간에 데이터가 들어옵니다..
몇일째 이래저래 고쳐보고 타이머를 써보아도 현상은 동일하네요..
이러한 현상 아시는분 답변부탁드립니다..
========================= 아 래 =================================
void __fastcall ClntThd::UpdateListbox()
{
TByteDynArray Rx_Data;
char rcv_data[128];
int size;
Form2->Caption = qq;
size = Form2->IdTCPClient1->Socket->InputBuffer->Size;
if(size <= 0) {
return;
}
Form2->IdTCPClient1->Socket->ReadBytes(Rx_Data, size, false);
for(int idx=0; idx<size; idx++)
rcv_data[idx] = Rx_Data[idx];
Form2->Edit1->Text = rcv_data;
}
__fastcall ClntThd::ClntThd(void)
: TThread(false)
{
}
//---------------------------------------------------------------------------
void __fastcall ClntThd::Execute()
{
//---- Place thread code here ----
qq = 0;
while(!Terminated) {
qq++;
Synchronize(&UpdateListbox);
}
}
|